문자열에 캐리지 리턴을 처리하는 데 문제가 있습니다. (필자는 캐리지 리턴을 유지해야합니다. 그리고 유일하게 그들을 위해 코딩하지 싶습니다.)이 문자열 2 캐리지 리턴을 가지고 ...캐리지 리턴 문자열을 공백으로 추가하는 방법
Press the Switch
Drying
를 그리고 비주얼 스튜디오의 SQL 편집기에서 볼 때 보이는 것처럼 ....
Press the SwitchDrying
기술적으로 문제가되지 않습니다. 내용을 Excel 또는 다른 곳에 복사하여 붙여 넣을 수 있으며 형식이 올바르게 지정되어 있습니다.
동일한 값을 갖고 있어도 문자열을 다른 변수와 비교하려고하면 문제가 발생합니다.
내 Sql 2008 R2 DB 테이블에서 레코드 집합을 쿼리 한 다음이를 외부 데이터 소스와 비교합니다.
그래서 문자 배열을 추가 한 후 세트 SQL 결과의 레코드를 I 루프 ....
For Each row As DataRow In myTable.Rows
Dim stringVal As String = row(columnName).ToString()
' Eventually added this to see that the row was adding 2 spaces after the carriage return
Dim cstringVal() As Char = stringVal.ToCharArray
Dim csearchValue() As Char = searchValue.ToCharArray
' Originally tried
If row(columnName) = searchValue And row(columnName2) = searchValue2 Then
return True
End If
' Tried this
If stringVal = searchValue And row(columnName2) = searchValue2 Then
Return True
End If
' And this
If String.Compare(stringVal, searchValue, False) = 0 And row(columnName2) = searchValue2 Then
Return True
End If
Next
Return False
로서 든 제 1 캐리지 리턴 후에 첨가되는 2 개 공간이 있었다는 것을 알아 차렸다. 또는 CR이 char 배열에서 식별되지 않기 때문에 각각의 뒤에 하나의 공백이 올 수도 있습니다.
이 문자열을 분할하는 코드가없고이 원인이되는 캐리지 리턴이있는 문자열 만 있습니다. 유일한 다른 차이점은 한 문자열이 OLE DataAdapter이고 다른 문자열은 SQL DataAdapter입니다.
무엇을 제공합니까? 어떤 아이디어?
업데이트 : SQL DataAdapater가 내 쿼리에서 반환 된 데이터 집합의 캐러지 리턴을 올바르게 나타내지 못하는 것처럼 보입니다. VS SQL Editor에서 테이블 내용을 볼 때 문자열을 올바르게 복사하여 테이블에서 다른 응용 프로그램에 붙여 넣을 수 있습니다. 나는 값의 비교를 곧 보게 될 코드를 걷게 될 것이다.
문자열이 다른 Access 데이터베이스에서 나옵니다. Linux가 없습니다. 답장을 보내 주셔서 감사 드리며,이 문제에 대한 의견을 보내 주시면 감사하겠습니다. – htm11h
@ marc11h "행이 캐리지 리턴 후 2 칸을 추가하고있다"고 말할 때, 정말로 그 칸들이 공백입니까? 때때로 0x0A 또는 0x0D와 같은 인쇄 할 수없는 문자는 공백 (물음표 또는 "상자"등)으로 렌더링됩니다. 한 문자열에 이들 문자열이 있고 다른 문자열에없는 경우 두 문자열이 일치하지 않습니다. 맞습니까? – criticalfix
글자는 배열의 추가 문자 공간입니다. 0x00d 0xOa 문자열을 추가 2 공백을 추가하는 Windows 0x0 경우에만있는 것 같아요. 내일 좀 더 시험을 봐야 겠어. 필자는 Lotus Nnotes 시스템과 아마도 문자열 관리를 혼합 한 Unix가 있었음을 확인했습니다. – htm11h