Ji Jonny,
> Dim nextstep As String
> Dim Newkords As String
>
>
> Private Sub Form\_Load()
> Dim ff As Integer
> Dim Txt As String
> Dim l As Long
> Dim na As String
> Dim Teil() As String
> Dim i As Long
>
> ff = FreeFile
> na = App.Path & "\input.csv"
>
> Open na For Input As #1
> Do While Not EOF(1)
> Line Input #1, s
Splitten am Semikolon? Da ist doch gar keins.
> Teil = Split(s, ";")
>
> For i = LBound(Teil) To UBound(Teil)
> Teil(i) = Replace(Teil(i), " ", "")
> Teil(i) = Replace(Teil(i), " ", "")
> Teil(i) = Replace(Teil(i), Chr(9), "")
Das bau ich mal um.
While Instr(s," ")
s = Replace(s," "," "
Wend
S = Replace(s, Chr(9), "")
s = Replace(s, "°","")
While Instr(s,"'")
s = Replace(s,"'",""
Wend
Mit der While-Schleife ist es egal, wie vile Leerzeichen da sind, es bleibt genau eins übrig. Die Einheiten sind auch weg.
nun Split, aber richtig.
Teil = Split(s, " ")
Das Leerzeichen ist das Trennzeichen.
> nextstep = Teil(i)
>
> If InStr(nextstep, "°") Then
> nextmoep
> End If
>
> Next
>
> Loop
> Close #1
> End Sub
>
> Private Sub nextmoep()
> Dim Teil() As String
> Dim i As Long
> Dim erg1 As String
> Dim erg2 As String
> Dim erg3 As String
>
> i = 0
>
> erg1 = 0
> erg2 = 0
> erg3 = 0
>
> nextstep = Replace(nextstep, "°", "!")
> nextstep = Replace(nextstep, "''", "!")
> nextstep = Replace(nextstep, "'", "!")
> Teil = Split(nextstep, "!")
Noch mal Split? Der string ist doch schon zerlegt.
Ich habe das Entfernen von ° und ' gleich oben mit erledigt.
> For i = LBound(Teil) To UBound(Teil)
> If i = 0 Then
> erg1 = Teil(i)
> End If
> If i = 1 Then
> erg2 = Teil(i) / 60
> End If
> If i = 2 Then
> erg3 = Teil(i) / 360
> End If
> Next
Dann ist eine Schleife eher wenig Sinnvoll, da kannst Du auch gleich schreiben...
Newkords = Teil(0) + Teil(1) / 60 + Teil(2) / 360
... das macht das Selbe. :smile:
> List1.AddItem erg1 & "--" & erg2 & "--" & erg3
> List1.AddItem Newkords
> End Sub
Also noch mal zusammengefasst:
Private Sub Form\_Load()
Dim ff As Integer
Dim s As String
Dim na As String
Dim Teil() As String
Dim Newcoord1 As String
Dim Newcoord2 As String
ff = FreeFile
na = App.Path & "\input.csv"
Open na For Input As #1
Do While Not EOF(1)
Line Input #1, s
s = Replace(s, "°", "")
s = Replace(s, ",", ".")
s = Replace(s, Chr(9), "")
While InStr(s, " ")
s = Replace(s, " ", " ")
Wend
While InStr(s, "'")
s = Replace(s, "'", "")
Wend
Teil = Split(s, " ")
Newcoord1 = CStr(CDbl(Teil(0)) + CDbl(Teil(1)) / 60 + CDbl(Teil(2)) / 360)
Newcoord2 = CStr(CDbl(Teil(3)) + CDbl(Teil(4)) / 60 + CDbl(Teil(5)) / 360)
List1.AddItem Newcoord1 + " " + Newcoord2 + " " + Teil(6)
Loop
Close #1
End Sub
Funktioniert das besser? Ungetestet, ich habe ja keine Daten.
Gruß Rainer