|
| Autor |
Nachricht |
Cypher_0 Newbie

Anmeldedatum: 12.08.2008 Beiträge: 12
|
Text aus einer bestimmten Zeile lesen und Overflow - Problem
Verfasst am: 21.08.2008, 01:07 |
|
|
Hi Leute,
also ich wollte grade mal ein bisschen mit den Dateioperationen rumspielen. Nachdem ich es geschafft habe, eine Textdatei komplett auszulesen, wollte ich mein Programm dazu bewegen, eine bestimmte Zeile auszulesen. Welche soll der User bestimmen (in Text2.Text). Lass ich es durchlaufen kriege ich den "Runtime error 6: Overflow". Nach ein bisschen googlen kam ich drauf, dass LineCount wohl eher als Long definiert werden soll. Hab ich gemacht und zack, mir schmiert die komplette Anwendung ab. Weiss jemand Rat?
Nach ein bisschen rumprobieren weiss ich mittlerweile, dass LineCount in dem Moment einen Overflow erzeugt, indem es in eine If - Schleife eingebettet wird. Aber wie kann ich sonst eine spezifische Zeile auslesen?
Visual Basic: [code]Private Sub Command2_Click() Dim FileNumber, SpecLine, LineCount As Integer Dim Filepath, TextLine As String
FileNumber = FreeFile SpecLine = Text2.Text Filepath = Text1.Text LineCount = 0
Open Filepath For Input As FileNumber While Not EOF(FileNumber) LineCount = LineCount + 1 If LineCount = SpecLine Then Line Input #FileNumber, TextLine End If Wend Close FileNumber MsgBox TextLine, vbOKCancel, "Blah" End Sub[/code] |
|
| |
|
 |
bla Coder

Anmeldedatum: 02.05.2008 Beiträge: 267
|
|
| |
|
 |
Cypher_0 Newbie

Anmeldedatum: 12.08.2008 Beiträge: 12
|
Verfasst am: 21.08.2008, 16:57 |
|
|
Danke für die Tipps. Allerdings sind mir APIs zu umständlich und die FSO-Array-Spielerei zu frickelig. Mit ein bisschen Probieren habe ich es dann doch noch hinbekommen:
Visual Basic: [code]Private Sub Command2_Click() Dim FileNumber, SpecLine, LC As Integer Dim Filepath, TextLine As String
FileNumber = FreeFile SpecLine = Text2.Text Filepath = Text1.Text LC = 0
Open Filepath For Input As FileNumber While Not EOF(FileNumber) LC = LC + 1 Line Input #FileNumber, TextLine TextAll = TextAll + TextLine + vbCrLf If LC = SpecLine Then MsgBox TextLine Wend
MsgBox TextAll, vbOKOnly, "Ergebnis" End Sub [/code]
Bei dem Code gibt man in eine Textbox (hier: Text2.Text) die Zahl der Zeile an, die gelesen werden soll. Sie wird dann in eine Variable übergeben und mit dem Zeilenzähler LC verglichen. Wenn beide gleich, wird die Zeile in eine Variable geschrieben und ausgelesen. |
|
| |
|
 |
Tix Newbie

Anmeldedatum: 29.06.2008 Beiträge: 10
|
|
| |
|
 |
|
|