AGB  ·  Datenschutz  ·  Impressum  







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

ReadLn - Welche Zeile?

Ein Thema von StanY · begonnen am 26. Okt 2004 · letzter Beitrag vom 26. Okt 2004
Antwort Antwort
Seite 2 von 2     12   
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#11

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:10
Aber Stringlist beinhaltet ja, dass ich die Datei in den RAM laden muss.
Da das Programm aber evtl. wenns fertig ist auf 'schlechteren' rechnern läuft und die .txt-Datei recht groß werden kann, will ich das eigentlich vermeiden.

Die Stream-Geschichte werde ich mir mal anschaun, darum habe ich bislang immer einern Bogen gemacht (;.

Und danke auf wg. Seek() auch das schau ich mir mal an, wenn ich wieder an meinem Rechner bin.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#12

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:14
seek ist schon das was du willst. ...wundert mich überhaupt das das hier erst am ende erwähnt wurde.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#13

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:17
Seek() ist zwar das richtige, aber dafür muß man dennoch erst den Anfang der Datei auslesen und für die 2. Zeile das Zeichen, nach dem 1. Zeilenumbruch suchen,

also ist der 1. Vorschlag vom Dax besser.

Delphi-Quellcode:
ReadLn(InFile);
ReadLn(Infile, Buffer);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#14

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:20
Zitat:
Seek() ist zwar das richtige, aber dafür muß man dennoch erst den Anfang der Datei auslesen
Seitwann das? ich benutze immer direkt Seek() ohne vorher readln benutzt zu haben und es ging immer.

Reset() setzt den zeiger an die erste position, also readln() brauch man nicht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Strophi

Registriert seit: 15. Okt 2004
Ort: Recklinghausen
33 Beiträge
 
#15

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:39
Hi,

wenn Du Text zufälligerweise selber generierst, oder er sich nicht oft ändert, erzeuge doch ein Index-File, indem Du das File einmal durchrödelst und Dir vor jedem readln die aktuelle Position im File merkst, und diese in ein Array oder woanders speicherst. Dann kannst Du dir aus dem Array die benötigte Position holen, diese seeken und auslesen.

mit freundlichen Grüßen

Strophi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#16

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:40
Ja und woher willst du die Position wissen, zu der du mit Seek springen mußt, damit du z.B. die 2. Zeile triffst?
@Pseudemys Nelsoni
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#17

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 16:47
Ich denke ich bleibe bei ReadLn und einer Schleife, da ich bei Seek und auch bei Streams anscheind das Problem ist, dass ich die Datei lediglich Byte- und nicht Zeilenweise auslesen kann.

Die Index-Datei wäre zwar eine nette Idee, allerdings lohnt es sich wohl nicht, da der Aufwand zu groß ist und es eigentlich kaum mehr bringt als ReadLn.

StringList scheidet ja schon wg. des Rams aus.

Fazit: Wie schon gesagt: ReadLn. Oder liege ich mit dem, was ich Verstanden habe irgendwie falsch? (Achtung, sobald die Antwort nein ist, ist dies eine rethorische Frage, um Spam zu vermeiden (; )
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#18

Re: ReadLn - Welche Zeile?

  Alt 26. Okt 2004, 17:35
Seek geht nicht bei Text-Dateien.

Die StringList ist natürlich prinzipiell die erste Wahl, aber wie gesagt wenn die Datei zu groß ist.....

Die Idee mit den Streams hat was für sich: blockweise einlesen, eine Intelligenz einbauen, die nach Zeilenumbrüchen sucht/zählt. Aber wie gesagt, warum dann nicht gleich x ReadLn-Aufrufe ?!?

Roderich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:23 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