AGB  ·  Datenschutz  ·  Impressum  







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

Textdatei zeichenweise laden

Ein Thema von Prolinesurfer · begonnen am 18. Aug 2003 · letzter Beitrag vom 13. Dez 2003
Antwort Antwort
Prolinesurfer

Registriert seit: 17. Aug 2003
12 Beiträge
 
#1

Textdatei zeichenweise laden

  Alt 18. Aug 2003, 12:28
Hi!

Kann man aus Textdateien irgendwie nur die ersten paar Zeichen bzw. nur bestimmte Zeilen laden?

Prolinesurfer
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Textdatei zeichenweise laden

  Alt 18. Aug 2003, 12:45
Generell ja, stellt sich nur die Frage um was für Datenmengen es sich handelt

Im Forum nach Hier im Forum suchenTStringList or TStrings or StringListen und Hier im Forum suchenTStringList and Lines and LoadFromFile sollte Dir helfen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Textdatei zeichenweise laden

  Alt 18. Aug 2003, 12:58
Hallo,
da ich nicht genau weiss was Du möchtest schlage ich folgendes vor.
Delphi-Quellcode:
procedure LoadFromTextFileExt(TextFilename : TFilename; L : TStrings; Ident : String; FromPos, Count : Integer);
var
  _File : System.Textfile;
  _Line : String;
begin
  L.Clear;
  AssignFile(_File,TextFilename);
  Reset(_File);
  Try
    While Not EOF(_File) do
      begin
      Readln(_File,_Line);
      If Pos(Ident,_Line)>0 then
        L.Add(Copy(_Line,FromPos,Count));
      end;
  Finally
    CloseFile(_File);
    end;
end;
Die procedure liest die Textdatei zeilenweise. Befindet sich in einer Zeile der Inhalt von Ident werden aus dieser Zeile ab der Position FromPos Count Zeichen kopiert und an L gehängt.
  Mit Zitat antworten Zitat
Prolinesurfer

Registriert seit: 17. Aug 2003
12 Beiträge
 
#4

Re: Textdatei zeichenweise laden

  Alt 18. Aug 2003, 13:07
Hm, also zeilenweise ist doch nicht so gut. Eigentlich will ich wirklich nur die ersten 4-5 Zeichen laden.

Ich will das eben bei beliebig großen Dateien durchführen und wenn die erstmal 5 mb übersteigen, erübrigt sich das Laden des gesamten Inhalts.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Textdatei zeichenweise laden

  Alt 18. Aug 2003, 13:10
Hallo,
ach so, dann mach doch folgendes
Delphi-Quellcode:
function FirstSigns(TextFilename : TFilename; Count : Integer) : String;
var
  _File : System.Textfile;
  _Line : String;
begin
  AssignFile(_File,TextFilename);
  Reset(_File);
  Try
    Readln(_File,_Line);
    Result:=(Copy(_Line,1,Count));
  Finally
    CloseFile(_File);
    end;
end;
  Mit Zitat antworten Zitat
Prolinesurfer

Registriert seit: 17. Aug 2003
12 Beiträge
 
#6

Re: Textdatei zeichenweise laden

  Alt 18. Aug 2003, 13:16
Ja, genau das hab ich gesucht!

Danke!!!
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Textdatei zeichenweise laden

  Alt 12. Dez 2003, 22:59
Wie kann man das zeichenweise lesen in eine Schleife packen?
Ich hab hier nämlich nen String den ich aus einer Textdatei auslese aber ich möchte für jedes einzelne Zeichen gerne etwas ausführen.

Thx for help!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Textdatei zeichenweise laden

  Alt 12. Dez 2003, 23:23
Moin Florian,

schau Dir doch mal TFileStream an.
Du könntest dann den String entweder zeichenweise einlesen, oder komplett und dann Zeichenweise auslesen.
Für das zeichenweise Einlesen, könntest Du dann als Buffer eine Variable vom Typ Byte oder char nehmen, und anhand des jeweils eingelesenen Wertes mit case entscheiden, was jeweils zu tun ist.
Aus Performancegründen solltest Du hierbei allerdings den endgültigen String gleich ausreichend gross anlegen, und dann immer das Zeichen an den gerade aktuellen Index schreiben.
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 flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Textdatei zeichenweise laden

  Alt 12. Dez 2003, 23:52
Also kann man den Code von Jens nicht irgendwie umschreiben?
Ich hab den Text aus der Datei nur halt in eine Stringlist geschrieben usw. und ich dachte da könnte man ihn gleich weiterbearbeiten...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#10

Re: Textdatei zeichenweise laden

  Alt 13. Dez 2003, 18:55
Hallo,

es gibt dann noch die Möglichkeit ReadBuffer zu verwenden. Du lädst die Zeichen in ein Array und dann kannst Du mit jedem Byte machen, was immer Du willst.

mfg
eddy
  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 20:18 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