Entwickler-Ecke

Dateizugriff - Textdatei ohne Endung


Simu - Mo 12.07.04 14:31
Titel: Textdatei ohne Endung
Hab mal wieder ein problem:
Habe eine Textdatei ohne endung. Wenn ich diese mit dem WordPad öffne, ist alles schön zeilenweise sortiert. Jetzt möchte ich diese endungslose Datei mit LoadFromFile öffnen und nach gewissen IP-Adressen Filtern. Das Problem ist, das jetzt die ganze Datei auf einer Zeile steht und nicht im Format wie wenn ich sie mit WordPad öffne. Somit kann ich die Datei nicht mehr Filtern. :(

Danke für eure Hilfe


inselberg - Mo 12.07.04 14:42

memo.LoadFromFile ?
versuchs mal mit richedit


Simu - Di 13.07.04 10:21

Hat nicht funktioniert.
Hab da einen Code gefunden womit das ganze funktionieren sollte.
Leider giebt es mir einen Fehler aus: "Ungültige Typumwandlung" bei OemToChar.
Kann mir jemand sagen woran das liegt?

Danke!!



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure Ascii2Ansi(var s: string);  
var  
  s0: string;  
begin  
  Setlength(s0,length(s));  
  if (length(s0)>0then  
    OemToChar(Pchar(s),PChar(s0));  
  s:=s0;  
end;

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt.


Delete - Di 13.07.04 12:20

Die Zeilenumbrüche werden wohl nicht stimmen. Unter Windows ist für ein Memo ein Zeilenumbruch #13#10 unter Linux #10 und unter Mac glaube ich nur #13. Kuck dir die Textdatei mal in einem HexEditor an. Sollte meine Vermutung zu treffen, lad die Datei vorher in eine Stringliste, uersetzte mit StringReplace die Zeilenumbrüche und lade sie dann in das Memo.


inselberg - Di 13.07.04 12:40

oder poste einfach mal auszugsweise die datei ... nicht deren inhalt


Simu - Di 13.07.04 12:49

ok danke!
werde mal schauen ob ich das hinkriege.
mfg


Delete - Di 13.07.04 13:52

Luckie hat folgendes geschrieben:
Sollte meine Vermutung zu treffen, lad die Datei vorher in eine Stringliste, uersetzte mit StringReplace die Zeilenumbrüche und lade sie dann in das Memo.

Ist aber nicht notwendig. Ich habe meine ".htaccess" lokal auf der Platte. Sie benutzt auch nur #10 als Zeilenumbruch, wenn ich sie aber lade

Delphi-Quelltext
1:
Memo.Lines.LoadFromFile('.htaccess');                    

werden die Zeilen korrekt untereinander dargestellt. Edit-PS: Getestet mit Delphi 5.


Simu - Di 13.07.04 14:54

:D Danke euch allen!!
Hat alles funktioniert.
Weis vieleicht jemand wie grosse Dateien ich mit StringReplace ersetzen kann?
hab so 5MB gehabt, dann ist alles abgestürtzt :(
Wenn ich das prog dann einsetzte, sollte ich dateien durchlesen können mit 70MB.

Mfg Simu