Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Seek() für Textdateien? (https://www.delphipraxis.net/75843-seek-fuer-textdateien.html)

Pseudemys Nelsoni 25. Aug 2006 19:53


Seek() für Textdateien?
 
Moin,

ich benutze in C# die Klasse "StreamReader", mit der ich per ReadLine() eine Zeile per _Zufall_ auslesen möchte, d.h ich müsste per Seek()(Wenn es die Funktion da gäbe) in eine Zufallszeile springen, nur leider gibt es die Funktion da nicht. Und die enthaltene Seek() Funktion in "BaseStream" springt von Byte zu Byte und nicht von Zeile zu Zeile.... Jemand ne Idee?

Dax 25. Aug 2006 20:00

Re: Seek() für Textdateien?
 
Ich wüsst nur eins: "Zufall"-1 Zeilen lesen und den Inhalt verwerfen, dann Zeile lesen und Inhalt verwenden..

Pseudemys Nelsoni 25. Aug 2006 20:03

Re: Seek() für Textdateien?
 
Ist das performant? *g

Und selbst wenn ich es so tue, wie komme ich wieder zum Anfang der Datei ohne sie immer neu öffnen zu müssen?

Dax 25. Aug 2006 20:09

Re: Seek() für Textdateien?
 
Performant.. Hm, nicht wirklich *G*

Zum zurückspulen: StreamReader.BaseStream.Seek(0, SeekOrigin.Begin); ;)

Pseudemys Nelsoni 25. Aug 2006 20:13

Re: Seek() für Textdateien?
 
Hehe, geht das generell nicht von Zeile zu Zeile zu springen oder ist das nur in .NET so?

Ansonsten danke, auch wenn ich es mir "sauberer" vorgestellt habe *g*

SirThornberry 25. Aug 2006 20:15

Re: Seek() für Textdateien?
 
wenn du mit ReadLine eine zeile liest muss intern auch die Datei bis zum zeilenumbruch durchsucht werden. Dementsprechend bleibt nichts anderes übrig als zig mal nach einem zeilenumbruch zu suchen

Pseudemys Nelsoni 25. Aug 2006 20:18

Re: Seek() für Textdateien?
 
Hm, und wie bekomme ich überhaupt die Anzahl an Zeilen in der Datei raus? Muss ich da auch alle Zeichenumbrüche zählen? Gibts da keine Funktion in .NET oder wie? :stupid:

SirThornberry 25. Aug 2006 20:20

Re: Seek() für Textdateien?
 
da musst du auch die Zeilenumbrüche zählen. Wenn es in .Net dafür eine Funktion gäbe würde diese auch nix anderes machen.

Pseudemys Nelsoni 25. Aug 2006 20:21

Re: Seek() für Textdateien?
 
Danke, dann mach ich es so ;). Jop, denk ich mir, dass diese dann auch nichts anderes tun würde - Nur müsste ichs dann nicht tun^^

Hm, woher weiss ich nun wie eine Zeile getrennt ist? ist doch manchmal nur #10 oder #13 oder #13#10 oder #10#13 oder?

Klaus01 25. Aug 2006 20:28

Re: Seek() für Textdateien?
 
Hallo Mario,

vielleicht magst Du Dir ja noch diesen Thread anschauen: http://www.delphipraxis.net/internal...ghlight=seek64

Seek64 auch für Textdateien.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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