AGB  ·  Datenschutz  ·  Impressum  







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

txt-file einlesen und bearbeiten

Ein Thema von jority · begonnen am 20. Okt 2003 · letzter Beitrag vom 16. Feb 2006
Antwort Antwort
jority

Registriert seit: 1. Jul 2003
Ort: on your Harddisk
49 Beiträge
 
Delphi 7 Professional
 
#1

txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 15:48
hi ihr lieben,
ich möchte/muss eine txt-file einlesen und beaerbeiten.
ich lese sie zeilenweise ein und zwar so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    i:integer;
    s:string;
begin
      assignfile(f,'c:\test.txt');
      reset(f);
     i:=0;
      while not EOF(f) do begin
        readln(f,s);
        memo1.Lines.Add(s);
        inc(i)
      end;
so, da es sich um eine txt-file handelt mit einem komischen format möchte ich "nur" die ascii zeichen
32 bis 126 anzeigen bzw. alle anderen rausschmeißen.
weiß da jemand ne lösung? hab leider noch nie mit dem auslesen von txt-dateien gearbeitet und brauche jetzt hilfe
ich hoffe mir kann jemand helfen.
gruß
Jority

[edit=sakura]Bitte Delphi.Tags nutzen! Mfg, sakura[/edit]
der HipHop regiert die Welt, und wer regiert den HipHop:
http://www.TJ-Recordz.de.vu
Peace TJ
  Mit Zitat antworten Zitat
Tanadirian

Registriert seit: 13. Feb 2003
Ort: Pdm
67 Beiträge
 
#2

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 16:06
Hmm... du könntest
Delphi-Quellcode:
hlpstr:='';
for i:=1 to length(s) do
begin
 if s[i] in [#32...#126] then hlpstr:=hlpstr+s[i];
end;
next;
nach readln(f,s); einfügen dann müsste es eigentlich gehen!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 16:11
Moin Jority,

das Einlesen kannst Du Dir schon mal vereinfachen:
(Voraussetzung: Das Memo soll nicht nur ergänzt werden)

Memo1.Lines.LoadFromFile(....);
So könnte es gehen:

Delphi-Quellcode:
var
  sBuf : string;
  iIN : integer;
  iOUT : integer;

begin
  // Die Anzeige erst einmal unterdrücken
  Memo1.Lines.BeginUpdate;
  try
    // Datei laden
    Memo1.Lines.LoadFromFile('c:\temp\test.txt');
    // In Buffer übernehmen, da das Ansprechen von Text die Geschwindigkeit drückt
    // (wird jedesmal aus den Lines zusammengesetzt
    sBuf := Memo1.Lines.Text;
    // Hierhin die gültigen Zeichen schreiben
    iOUT := 1;
    // Alle Zeichen durchgehen
    for iIN := 1 to length(sBuf) do begin
      // nicht gültig, dann nächstes Zeichen
      if not (sBuf[iIN] in [#10,#13,#32..#126]) then continue;
      // Zeichen übertragen
      sBuf[iOUT] := sBuf[iIN];
      // Auf nächste freie Stelle
      inc(iOUT);
    end;
    // Die gültigen Zeichen wieder zurückschreiben
    Memo1.Lines.Text := copy(sBuf,1,iOUT-1);
  finally
    // Text anzeigen
    Memo1.Lines.EndUpdate;
  end;
end;
Da bei der Bearbeitung keine Zeichen eingefügt werden, können Quell- und ZielBuffer identisch sein.
Die Zeichen #13#10 stellen den Zeilenvorschub dar, und sollten auch erhalten bleiben.
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
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#4

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 16:17
Servus,
Du solltest Dir die Strings erst mal in einer Zwischenvariable speichern und diese dann
modifizieren, bevor Du sie dann verändert an das Memo weiter gibst. Sieh mal in der Hilfe unter
String-Verarbeitung nach. Dort findest Du dann diverse Funktionen wie delete, concat,
pos, etc.,. Das ist alles, was Du benötigst, um die überflüssigen Zeichen rauszukicken.

Gruß
DANNYBOY
  Mit Zitat antworten Zitat
jority

Registriert seit: 1. Jul 2003
Ort: on your Harddisk
49 Beiträge
 
Delphi 7 Professional
 
#5

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 16:23
hi,
geht leider so auch nicht.
also im prinzip soll das alles sowieso nicht im memo angezeigt werden hatte das jetzt nur zum testen.
eigentlich soll es so aussehen:
datei einlesen
bearbeiten bzw. ungültige zeichen rausschmeißen
datei erstmal unter neuem namen speichern

so sollte es sein bekomme das aber irgendwie nicht so hin
bei deinem code chris ist es so das im memo nur dies steht: "
und das war es dann.
und wenn ich es dann speichern will hab ich eben genau diese anführungsstriche in der neuen txt und sonst nichts.
habt ihr vielleicht noch eine idee?
ich bin am ende!

gruß jority
der HipHop regiert die Welt, und wer regiert den HipHop:
http://www.TJ-Recordz.de.vu
Peace TJ
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: txt-file einlesen und bearbeiten

  Alt 20. Okt 2003, 16:33
Moin Jority,

dann möchte ich fast mal annehmen, dass Du eine Unicode Datei vorliegen hast.

Zum einlesen wäre dann ein FileStream geeignet:

Delphi-Quellcode:
var
  fsWork : TFileStream;
  // Weitere Variablen wie oben

begin
  fsWork := TFileStream.Create('c:\temp\test.txt',fmOpenRead);
  try
    sBuf := StringOfChar(#00,fsWork.Size);
    fsWork.Read(sBuf[1],fsWork.Size);
  finally
    FreeAndNil(fsWork);
  end;
  // Verarbeitung wie oben beschrieben
  fsWork := TFileStream.Create('c:\temp\testneu.txt',fmCreate);
  try
    fsWork.Write(sBuf[1],iOUT-1);
  finally
    FreeAndNil(fsWork);
  end;
end;
BTW: Vielleicht wäre es noch ganz sinnvoll #09 (Tabulator) mit in die gültigen Zeichen aufzunehmen.
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
jority

Registriert seit: 1. Jul 2003
Ort: on your Harddisk
49 Beiträge
 
Delphi 7 Professional
 
#7

Re: txt-file einlesen und bearbeiten

  Alt 21. Okt 2003, 08:37
hi,
das ist genau das was ich gebraucht habe Chris,
aber natürlich auch dank an die anderen beiden mithelfer!
so jetzt steht wenigstensen schonmal der größte teil des Programms!

also danke nochmal wäre da echt nicht weitergekommen.

gruß Jority
der HipHop regiert die Welt, und wer regiert den HipHop:
http://www.TJ-Recordz.de.vu
Peace TJ
  Mit Zitat antworten Zitat
AndreT

Registriert seit: 5. Nov 2004
Ort: Bocholt
82 Beiträge
 
Delphi 2006 Enterprise
 
#8

Re: txt-file einlesen und bearbeiten

  Alt 16. Feb 2006, 16:06
Hat sich erledigt.

Andre
  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 03:17 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