![]() |
Stringblock aus Datei auslesen
sers leute
also ich habe folgendes problem ... ich habe 2 strings die ich angebe nach denen sucht mein programm in einer textdatei mit 9000 zeilen gibt diese Zeilen aus inder er diese Strings gefunden hat jetzt zu meinem Probelm Also ich will zwischen den ausgegeben Zeilen die dazwsichenligeneden auch noch ausgeben ich habe das so geschrieben bisher
Delphi-Quellcode:
Bidde bidde um hilfe bei fragen noch einfach stellen dann erklär ich was ihr nich versteht zum problem :bouncing4:
with dbmemo1 do
scrollBars:=SSboth; ReSet(f); //Datei zum Lesen öffnen DBMemo1.Clear; //Memo leeren r1:=0; ZNr:=0; Repeat ZNr:=ZNr+1; ReadLn(f,Zeile); //Zeile lesen If Pos(EditZeit.Text,Zeile)>0 Then //wenn String in Zeile gefunden begin DBMemo1.Lines.Add( 'Zeilennr.: '+IntToStr(ZNr)+': '+Zeile); repeat r1:=r1+1; ZNr:=ZNr+1; Readln(f,Zeile); DBMemo1.Lines.Add( 'Zeilennr.: '+IntToStr(ZNr)+': '+Zeile ); [color=red] //hier sollte er nun alle dazwischenliegenden Zeilen auch ausgene //nur er bricht wenn er eine Zeile hat ab was iss das er bricht //die schleife einfach ab[/color] p:=pos(';',DBmemo1.Lines.Strings[r1]); while (p>0) do begin if p-1 >0 then begin s1:=copy(DBmemo1.Lines.Strings[r1],1,p-1); showmessage(s1); end; delete(DBmemo1.Lines.Strings[r1],1,p); p:=pos(';',DBmemo1.Lines.Strings[r1]); end; until Pos(Editzeit.Text,Zeile)=0; end; If Pos(EditZeit2.Text,Zeile)>0 then DBMemo1.Lines.Add( 'Zeilennr.: '+IntToStr(ZNr)+': +'Zeile ); Until EOF(f); |
keiner weis einen Rat :( in 4 Foren nicht was soll ich nur machen??
|
Moin Foxy,
ich hab' Dein Problem irgendwie nicht so ganz verstanden. Wodurch kennzeichnet sich die erste/letzte Zeile des Blockes die ausgegeben werden soll? Bist Du mal im Einzelschritt durch die Schleife gegangen, und hast Dir mal die Werte angesehen? Muss, z.B., die Schleife abbrechen, weil die nächste schon die Abbruchbedingung enthält? |
Hallo foxy,
auf die Schnelle fällt mir auf, dass du auf DBmemo1.Lines.Strings[r1] zugreifst. Der String Array fängt bei 0 an, r1 hat aber beim ersten Schleifendurchlauf bereits den Wert 1, so dass das Programm hier eigentlich abstürzen müsste. |
2002- 6-11 0: 0: 7;2146;2145;2146;2143;2145;2159;217;2157
so sieht das teil aus Ich möchte nun alles wegschneiden bis zum 2ten ";" z.B., und dann der string bis zum nächsten ";" soll eine Variable werden. das heist wenn ich sage wert 4 dann soll der bis zum 4ten ";" gehen diesen wert holen und dann wie du mir schon eben geholfen hast in die datenbank laden so habe ich das mal vor .. =) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz