|
| Autor |
Nachricht |
Kaali_ Tutorial Leser

Anmeldedatum: 14.12.2007 Beiträge: 42
|
Bestimmte Zeile einlesen, einfach, aber wie ?
Verfasst am: 15.12.2007, 17:08 |
|
|
Hallo, die Suchfunktion hat mir zwar einiges erbracht, jedoch nicht das, worauf es hier ankommt:
Ich muss mit einem Programm eine bestimmte Zeile auslesen, sagen wir aus der Datei "listsave.scr" muss die 2. Zeile ausgelesen werden und in der Textbox "Text1" ausgegeben werden. Ich hab zwar einige Codesnippets gesehen, jedoch werden dort immer viele Variablen angeben und bla bla bla ...
Gibt es nicht eine ganz einfach Möglichkeit eine bestimmte Zeile einzulesen ?
Lieben Gruß, Kaali |
|
| |
|
 |
kackb00n_ Tutorial Leser

Anmeldedatum: 07.12.2007 Beiträge: 42
|
Verfasst am: 15.12.2007, 19:13 |
|
|
lol. das problem hatte ich von 10 minuten auch.
Es gibt leider keinen Kleinen code.
aber einen relativ keinen
| Code: | Public Function ZeileLesen(ZeilenNr As Long, DateiPfad As String) As String
Dim DateiNr As Integer
Dim zeile As String
Dim ZeilenNr2 As Long
DateiNr = FreeFile
Open DateiPfad For Input As #DateiNr
Do Until EOF(DateiNr)
Line Input #DateiNr, zeile
ZeilenNr2 = ZeilenNr2 + 1
If ZeilenNr2 = ZeilenNr Then
ZeileLesen = zeile
Exit Function
End If
Loop
Close #DateiNr
End Function
|
Hoffe du wirst was damit anfangen können! |
|
| |
|
 |
Kaali_ Tutorial Leser

Anmeldedatum: 14.12.2007 Beiträge: 42
|
Verfasst am: 15.12.2007, 19:56 |
|
|
Vielen Dank, werde es morgen mal versuchen einzubauen
Gruß Kaali |
|
| |
|
 |
kackb00n_ Tutorial Leser

Anmeldedatum: 07.12.2007 Beiträge: 42
|
Verfasst am: 17.12.2007, 13:52 |
|
|
| und? funktioniert er?? ^^ |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 17.12.2007, 16:41 |
|
|
Nein er funktioniert nicht. Du hast die Variablen falsch deklariert bzw. verwendet.
Es geht außerdem viel leichter, ich schreib das mal schnell auf:
Du brauchst eine Variable für den Pfad und für jede Zeile nochmal eine Variable. Zum Beispiel:
| Code: | Dim Pfad As String
Dim Zeile1 As String
Dim Zeile2 as String
Dim Zeile3 as String |
Als nächstes muss der Dateipfad in der entsprechenden Variable angegeben werden:
| Code: | | Pfad = "C:\deine.txt" |
VB liest mit dem ersten "Line Input" die erste Zeile aus, mit dem Zweiten die zweite und so weiter.
Deshalb können wir die einzelnen Zeilen ganz leicht in Variablen speichern lassen. Folgendermaßen:
| Code: | Open Pfad For Input As #1
Line Input #1, Zeile1
Line Input #1, Zeile2
Line Input #1, Zeile3
Close #1 |
Jetzt haben wir 3 Zeilen in 3 variablen gespeichert und können jede einzelne in ein Textfeld einfügen.
| Code: | Text1.Text = Zeile1
Text2.Text = Zeile2
Text3.Text = Zeile3 |
Alles zusammen sieht dann folgendermaßen aus:
| Code: | Dim Pfad As String
Dim Zeile1 As String
Dim Zeile2 As String
Dim Zeile3 As String
Pfad = "C:\deine.txt"
Open Pfad For Input As #1
Line Input #1, Zeile1
Line Input #1, Zeile2
Line Input #1, Zeile3
Close #1
Text1.Text = Zeile1
Text2.Text = Zeile2
Text3.Text = Zeile3 |
Ist doch viel leichter oder? :> |
|
| |
|
 |
The-God-of-all_ Poster

Anmeldedatum: 20.05.2007 Beiträge: 170 Wohnort: App.Path
|
Verfasst am: 17.12.2007, 17:08 |
|
|
c0re, dein Code hat einen entscheidenden Nachteil: Er funktioniert nur wenn die Datei 3 Zeilen lang ist bzw. man nur eine der ersten drei Zeilen auslesen will. kackb00ns Code sollte funktionieren, er liest die Datei Zeile für Zeile aus und gibt dann die entsprechende Zeile aus, da er die Datei in einer Schleife ausliest kommt sie auch mit mehr als 3 Zeilen klar.
Allerdings ist c0res Erklärung sehr gut, weil einfach den Code von kackb00n zu kopieren bringt nichts, du solltest schon wissen wie er funktioniert. |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 17.12.2007, 17:12 |
|
|
| The-God-of-all hat Folgendes geschrieben: | | c0re, dein Code hat einen entscheidenden Nachteil: Er funktioniert nur wenn die Datei 3 Zeilen lang ist |
Lol ich weiß, dann machst du halt noch mehr Variablen, und liest mehr Zeilen aus.
Du kannst auch alle Zeilen in eine TextBox schreiben.
Da sieht man ja, dass du den Code nicht im geringsten verstanden hast. 
Zuletzt bearbeitet von c0re_ am 17.12.2007, 17:22, insgesamt einmal bearbeitet |
|
| |
|
 |
ZiG_ Überflieger

Anmeldedatum: 07.03.2007 Beiträge: 1248
|
Verfasst am: 17.12.2007, 17:17 |
|
|
| Zitat: | Lol ich weiß, dann machst du halt noch mehr Variablen, und liest mehr Zeilen aus.
Du kannst auch alle Zeilen in eine TextBox schreiben. |
Oh ja, beides sehr gute Methoden.  Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde) |
|
| |
|
 |
The-God-of-all_ Poster

Anmeldedatum: 20.05.2007 Beiträge: 170 Wohnort: App.Path
|
Verfasst am: 17.12.2007, 17:22 |
|
|
| Natürlich weiß ich das man den Code um noch mehr Variablen erweitern kann und damit noch mehr Zeilen auslesen kann. Aber leider wird der Code dann sehr lang wenn man nur Zeile 50 auslesen will, außerdem hat man dann 49 Zeilen im Speicher die man eigentlich gar nicht braucht und es dauert extrem Lange das zu Programmieren. Der Code von kackb00n wurde keineswegs verunstaltet, sondern er funktioniert. |
|
| |
|
 |
c0re_ « Moderator »

Anmeldedatum: 29.11.2007 Beiträge: 425
|
Verfasst am: 17.12.2007, 17:25 |
|
|
Ok der Code von kackb00n ist wirklich besser, hat aber so wie gepostet nicht funktioniert.
Hab ihn mir jetzt nochmal angeschaut. Der Code muss in ein Modul, die Zeile kann dann folgendermaßen eingelesen werden:
| Code: | Dim DeineZeile As Integer
DeineZeile = 1 ' die wievielte Zeile?
Text1.Text = ZeileLesen(DeineZeile, "C:\deine.txt") |
Hat halt gefehlt.
@ kackb00n: Nur Copy & Paste bringt dich allein auch nicht weiter. ;>
| ZiG hat Folgendes geschrieben: | | Oh ja, beides sehr gute Methoden. |
Für kleinere Sachen ist mein Code doch völlig ausreichend und für Anfänger besser zu verstehen.
Ich ging jetzt einfach mal nicht davon aus, dass ich 50 Zeilen einlesen wollt. |
|
| |
|
 |