Im Moment funktioniert das ja so, dass ein sortiertes Dokument über einen Leser zeilenweise gelesen wird und beim Vergleich
- Code: Select all
Do While Not inputFile.AtEndOfStream
strCurrentLine = inputFile.ReadLine()
If strCurrentLine <> strLastLine Then
outputFile.WriteLine(strCurrentLine)
End If
strLastLine = strCurrentLine
Loop
mit der letzten Zeile abgeglichen wird.
Es ist aber auch möglich zu prüfen, ob ein String eine Zeile bereits enthält (getrennt mit Trennzeichen, z.B. ";")
- Code: Select all
If Instr(strFeatureID,"HMV") <> 0 then
strfeaturetype="HMV"
elseif Instr(strFeatureID,"HMR") <> 0 then
strfeaturetype="HMR"
elseif Instr(strFeatureID,"SHMR") <> 0 then
strfeaturetype="SHMR"
elseif Instr(strFeatureID,"SHMV") <> 0 then
strfeaturetype="SHMV"
End if
Diesen String könnte man dann wie im Orginal über einen Streamwriter geschrieben werden.
Das würde das Sortieren ersparen und den Vorgang beschleunigen.
VB2008 Beispielcode
- Code: Select all
dim oldString as string = "a;b;c;b;a"
dim newString as string = ""
for i as integer = 0 to Ubound(Split(oldString, ";"))
if oldString = "" then
newString = Split(oldString, ";")(i)
else
if newString.Contains(Split(oldString, ";")(i)) = False then
newString = newString = newString & ";" & Split(oldString, ";")(i)
end if
end if
next
' newString wäre nun gleich "a;b;c"
Viele Grüsse