ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
744
744
EMPFEHLEN
-
16.10.06 17:29 #1
- Registriert seit
- Aug 2005
- Beiträge
- 436
Hallo,
irgendwie scheint in meinem Programm ein Fehler zu stecken...die Datenausgabe erfolgt nicht so, wie sie eigentlich sein sollte.
Ich habe folgende Textdatei, die eingelesen werden soll:
Code :1 2 3 4 5 6 7 8
1 13 Berg 2 11 Berg 2 12 Tal 2 56 Mitte 4 9 Berg 1 12 Tal 3 11 Berg 1 12 Mitte
In dieser Art sollten die Daten auch wieder in Debug.Print ausgegeben werden.
Bei mir sieht das allerdings so aus:
Code :1 2 3 4 5 6 7 8 9 10
0 0 1 13 Berg 2 11 Berg 2 12 Tal 2 56 Mitte 4 9 Berg 1 12 Tal 3 11 Berg 1 12 Mitte 0 0
Ja, da habe ich schon so einiges ausprobiert und die Daten waren hinterher auch korrekt ausgegeben, aber dann sollen sie ja noch sortiert werden, wobei dass dann auch nicht klappte und im Moment sehen sie so aus:
Code :1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 13 Berg 2 11 Berg 3 11 Berg 4 9 Berg 1 12 Mitte 2 56 Mitte 1 12 Tal 2 12 Tal
Und diese Nullen störe mich schon, denn die sollen garnicht dahin! Ich weiß wohl, dass es wohl an der Zuweisung meines Arrays liegt, aber einen Fehler entdecke ich nicht...bin auch nicht so wirklich fit in VB6. Habe allerdings auch schon einige Bekannte gefragt und die finden auch nix oder meinen, mein Code wäre soweit in Ordnung.
Wahrscheinlich sehr hilfreich, wenn ich mal meinen kompletten Code schicke:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
Option Explicit 'Verbund der Messstationsdaten Private Type TKoordinaten x As Double 'x-Koordinate y As Double 'y-Koordinate End Type Private Type TMessstationsdaten koord As TKoordinaten 'Koordinaten station As String 'Messstation End Type 'Verbund der Messdaten Private Type TMessdaten nummer As Byte 'Messnummer wert As Byte 'Messwert station As String 'Messstation End Type Dim datenA() As TMessstationsdaten 'ein Feld, deren Größe sich während der Programmdurchführung 'ändert, da beliebig viel Zeilen in der Textdatei Dim datenB() As TMessdaten 'zweite Feld 'Messdaten ausgeben Private Sub MessdatenAusgeben_Click() Dim i As Integer Dim erg As String For i = LBound(datenB) To UBound(datenB) erg = erg & datenB(i).nummer & Chr(9) & datenB(i).wert & Chr(9) & datenB(i).station & vbNewLine Next i Debug.Print erg End Sub 'Aufruf zum Messdaten Einlesen Vorgang Private Sub MessdatenEinlesen_Click() Call EinlesenMessdaten("DateiDialog.FileName") End Sub 'Messdaten laden Private Sub MessdatenLaden_Click() 'Fehlerbehandlung definieren DateiDialog.CancelError = True 'Abbrechen des Dialogs durch den Benutzer bewirkt einen Fehler On Error Resume Next 'Schaltet die Fehlerbehandlung aus.Tritt ein Fehler auf wird 'die Programmausführung mit dem nächsten Befehl fortgesetzt 'Eigenschaften setzen DateiDialog.DialogTitle = "Datei einlesen" DateiDialog.InitDir = "C:\temp\Messsdaten" DateiDialog.Filter = "Textdateien|*.txt|Alle Dateien|*.*" DateiDialog.DefaultExt = "txt" 'automatisch ergänztes Dateikürzel,falls Benutzer keins angibt DateiDialog.ShowOpen If Err.Number = 0 Then 'Datei öffnen MsgBox (DateiDialog.FileName) DateiEinlesen.Enabled = True 'Auswahl Einlesen wird Aktiviert MessdatenEinlesen.Enabled = True 'Auswahl Messdaten aktiviert MessdatenAusgeben.Enabled = True End If End Sub 'Sortieren von Messdaten Private Sub MessdatenSortieren_Click() Dim i As Long Dim erg As String Dim j As Long Dim h As String 'Hilfsvariable zum Tauschen Dim k As Byte 'Hilfsvariable zum Tauschen Dim l As Byte 'Hilfsvariable zum Tauschen For j = LBound(datenB) + 1 To UBound(datenB) - 1 For i = LBound(datenB) + 1 To UBound(datenB) - 1 If datenB(i).station > datenB(i + 1).station Or ((datenB(i).station = datenB(i + 1).station) And (datenB(i).nummer > datenB(i + 1).nummer)) Then h = datenB(i).station k = datenB(i).nummer l = datenB(i).wert datenB(i).station = datenB(i + 1).station datenB(i).nummer = datenB(i + 1).nummer datenB(i).wert = datenB(i + 1).wert datenB(i + 1).station = h datenB(i + 1).nummer = k datenB(i + 1).wert = l End If Next i Next j End Sub 'Stationsdaten ausgeben Private Sub StationsdatenAusgeben_Click() Dim i As Integer Dim erg As String For i = 1 To UBound(datenA) - 1 erg = erg & datenA(i).koord.x & Chr(9) & datenA(i).koord.y & Chr(9) & datenA(i).station & vbNewLine Next i Debug.Print erg End Sub 'Messstationsdaten laden Private Sub StationsdatenLaden_Click() 'Fehlerbehandlung definieren DateiDialog.CancelError = True 'Abbrechen des Dialogs durch den Benutzer bewirkt einen Fehler On Error Resume Next 'Schaltet die Fehlerbehandlung aus.Tritt ein Fehler auf wird 'die Programmausführung mit dem nächsten Befehl fortgesetzt 'Eigenschaften setzen DateiDialog.DialogTitle = "Datei einlesen" DateiDialog.InitDir = "C:\temp\Stationsdaten" DateiDialog.Filter = "Textdateien|*.txt|Alle Dateien|*.*" DateiDialog.DefaultExt = "txt" 'automatisch ergänztes Dateikürzel,falls Benutzer keins angibt DateiDialog.ShowOpen If Err.Number = 0 Then 'Datei öffnen MsgBox (DateiDialog.FileName) DateiEinlesen.Enabled = True 'Auswahl Einlesen wird Aktiviert StationsdatenEinlesen.Enabled = True 'Auswahl Messdaten aktiviert StationsdatenAusgeben.Enabled = True End If End Sub 'Aufruf zum Messstationdaten Einlesen Vorgang Private Sub StationsdatenEinlesen_Click() Call EinlesenStationsdaten("DateiDialog.FileName") End Sub 'Messstationsdaten einlesen Private Sub EinlesenStationsdaten(datei As String) On Error Resume Next Dim i As Integer Dim kanal As Byte Dim erg As String i = 1 datei = DateiDialog.FileName kanal = FreeFile 'Kanalnummer bestimmen ReDim datenA(1) 'Dimension wird im Programmverlauf bestimmt Open datei For Input As #kanal Do While Not EOF(kanal) If UBound(datenA) = i Then ReDim Preserve datenA(i + 1) 'Dimension wird verändert, der alte Inhalt bleibt End If Input #kanal, datenA(i).koord.x 'Koordinate x einlesen Input #kanal, datenA(i).koord.y 'Koordinate y einlesen Input #kanal, datenA(i).station 'Station einlesen i = i + 1 Loop Close #kanal End Sub 'Messdaten einlesen Private Sub EinlesenMessdaten(datei As String) On Error Resume Next Dim i As Integer Dim kanal As Byte Dim erg As String i = 1 datei = DateiDialog.FileName kanal = FreeFile 'Kanalnummer bestimmen ReDim datenB(1) 'Dimension wird im Programmverlauf bestimmt Open datei For Input As #kanal Do While Not EOF(kanal) If UBound(datenB) = i Then ReDim Preserve datenB(i + 1) End If Input #kanal, datenB(i).nummer 'Koordinate x einlesen Input #kanal, datenB(i).wert 'Koordinate y einlesen Input #kanal, datenB(i).station 'Station einlesen i = i + 1 Loop Close #kanal End Sub
Ich hoffe, es hat einer eine verständliche Lösung für mich...
-
ich gehe davon aus, dass du in deiner orginalen Textbatei den Tabulator benutzt hast um den Text so auszurichten....
dann versuch es mal so:
Code :1
Textdokument = "1" & Chr(9) & "13" & Chr(9) & "Berg" & Chr(13) & "2" & Chr(9) & "11" & Chr(9) & "Berg"
dabei bewirkt Chr(9) den Tab und Chr(13) bzw. vbCrLf den Zeilenumbruch
hoff das dich das weiterbringt
JonasIch distansiere mich hiermit ausdrücklich von allen Postings mit unsinnigen, ironischen oder einfach falschen Inhalten !
Ähnliche Themen
-
JS / Daten im Div ausgeben
Von newwarrior im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 23.06.08, 08:47 -
js&xml daten ausgeben
Von rand0m im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 17.05.07, 14:27 -
XML Daten mit PHP ausgeben
Von ChuloGT im Forum PHPAntworten: 0Letzter Beitrag: 06.10.04, 14:47 -
Daten ausgeben (von bis)
Von -oKruemelo- im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 01.07.04, 09:51 -
XML Daten Ausgeben
Von harleaquin im Forum HTML & XHTMLAntworten: 0Letzter Beitrag: 11.04.04, 17:31





Zitieren
Login





