AGB  ·  Datenschutz  ·  Impressum  







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

Seek() für Textdateien?

Ein Thema von Pseudemys Nelsoni · begonnen am 25. Aug 2006 · letzter Beitrag vom 25. Aug 2006
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Seek() für Textdateien?

  Alt 25. Aug 2006, 19:53
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:00
Ich wüsst nur eins: "Zufall"-1 Zeilen lesen und den Inhalt verwerfen, dann Zeile lesen und Inhalt verwenden..
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:03
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:09
Performant.. Hm, nicht wirklich *G*

Zum zurückspulen: StreamReader.BaseStream.Seek(0, SeekOrigin.Begin);
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:13
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*
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:15
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:18
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:20
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

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

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:21
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Seek() für Textdateien?

  Alt 25. Aug 2006, 20:28
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
Klaus
  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 07:48 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