AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringblock aus Datei auslesen

Ein Thema von foxy · begonnen am 4. Nov 2002 · letzter Beitrag vom 5. Nov 2002
Antwort Antwort
Benutzerbild von foxy
foxy

Registriert seit: 4. Nov 2002
Ort: Saarbrücken
62 Beiträge
 
Delphi 6 Enterprise
 
#1

Stringblock aus Datei auslesen

  Alt 4. Nov 2002, 11:48
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:
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);
Bidde bidde um hilfe bei fragen noch einfach stellen dann erklär ich was ihr nich versteht zum problem
  Mit Zitat antworten Zitat
Benutzerbild von foxy
foxy

Registriert seit: 4. Nov 2002
Ort: Saarbrücken
62 Beiträge
 
Delphi 6 Enterprise
 
#2
  Alt 5. Nov 2002, 10:30
keiner weis einen Rat in 4 Foren nicht was soll ich nur machen??
Kein Plan von nix
MFG Heiko aka Foxy
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 5. Nov 2002, 10:40
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?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 5. Nov 2002, 11:04
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.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von foxy
foxy

Registriert seit: 4. Nov 2002
Ort: Saarbrücken
62 Beiträge
 
Delphi 6 Enterprise
 
#5
  Alt 5. Nov 2002, 11:37
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 .. =)
Kein Plan von nix
MFG Heiko aka Foxy
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz