Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Kaali_
Tutorial Leser
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
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 Razz

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
Tutorial Leser

Anmeldedatum: 14.12.2007
Beiträge: 42


Verfasst am: 15.12.2007, 19:56

Vielen Dank, werde es morgen mal versuchen einzubauen Wink

Gruß Kaali
 
kackb00n_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 07.12.2007
Beiträge: 42


Verfasst am: 17.12.2007, 13:52

und? funktioniert er?? ^^
 
c0re_
« Moderator »<b><font color=green>« Moderator »</font



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
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 »<b><font color=green>« Moderator »</font



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. Rolling Eyes


Zuletzt bearbeitet von c0re_ am 17.12.2007, 17:22, insgesamt einmal bearbeitet
 
ZiG_
Überflieger
Ü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. Rolling Eyes
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
The-God-of-all_
Poster
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 »<b><font color=green>« Moderator »</font



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.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: zeile auslesen, bestimmte zeile, einlesen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Überprüfen ob datei existiert 850 29.04.2007, 17:39
Keine neuen Beiträge Datei mit Listbox erstellen 741 28.03.2007, 13:39
Keine neuen Beiträge Mit Dateien arbeiten: Lehrzeile in Datei schreiben 597 19.03.2007, 16:45
Keine neuen Beiträge Textbox an php datei 752 23.02.2007, 21:09
Keine neuen Beiträge Datei einlesen.... 827 28.01.2007, 05:21
 


[ Time: 0.0954s ][ Queries: 109 (0.0345s) ][ GZIP on - Debug on ]