![]() |
Wie Erkenne ich den Unterschied zwischen Unix und Win32 file
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Alle Miteinand.
Ich habe Ein Riesen Problem. In meinem Balanced spiel, wie auch in sehr vielen anderen Programmen von mir mus ich immer wieder dateien laden. Da ich als Win98 User aber ein anderes Dateiformat erzeuge wie die WinXP user erzeugt das immer wieder riesen Probleme. Laut meinem HexEditor werden die Einen dateien in Unix und die Anderen in Dos gespeichert. Der Unterschied ist mir Klar einmal ist CRLF und einmal nur LF aber wie erkenne ich das im Code. bisher lade ich meine Files immer mit :
Delphi-Quellcode:
Das Prob ist nu das er die Unix Dateien so nicht lädt, da diese ja schlieslich nur aus 1 Zeile bestehen. Weil zumindes mein Rechner das CRLF braucht.
var f: Textfile;
begin assignfile(f,'C:\bla.txt'); reset(f); .. closefile(f); Und nu hatte ich auch zum ersten mal den Fall das ein WinXP Rechner den selben Fehler hatte. Was nu echt Schei.. ist. Kann mir da einer von euch helfen ? Als Sample habe ich euch mal die User.cfg von meinem Balanced in Unix und einmal in Win32 angehängt. |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
Mohoin Corpsman,
ab und zu hole ich mir Dateien von UNIX/Linux Maschinen um diese zu verarbeiten. Dazu benutze ich folgende Prozedur. Wie Du siehst ersetzte ich das LF(#10) durch CRLF(#13#10).
Delphi-Quellcode:
Ich hoffe es hilft Die weiter...
//==============================================================================
// UNIX Datei in das Windows Format konvertieren procedure Unix2Win(const AFileName: String); var fFile : TStringList; i : integer; begin fFile:=TStringList.Create; try fFile.LoadFromFile(AFileName); for i := 0 to fFile.Count -1 do fFile[i] := StringReplace(fFile[i], #10, #13#10,[rfReplaceAll]); fFile.SaveToFile(AFileName); finally fFile.Free; end; end; Gruß ascotlx |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
Das hilft mir ;)
nur mus ich noch rauskriegen ob die gegebene File in Linuxformat ist. weil wenn ich die Konvertierung Pauschal immer machen lass gehts net. |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
@ascotlx: Probleme macht diese Funktion jedoch wenn du ein Windows-File erwischst. Dort steht dann nämlich #13#13#10
|
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
zähl die #10 und die #13 und vergleich die zahlen. Oder definiere im dateiformat als erste zeile einen zeilumbruch gefolgt von z.B. einem 'A'.
mfg, Ratte |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
@malo
ok ... bei meinen Programmen, weiss ich woher ich die Dateien habe(hole). Aber vielleicht hilft das ja weiter....
Delphi-Quellcode:
Gruss
if Pos(#13#10, str) > 0 then
ascotlx |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
Moin ascotlx,
die Schleife kannst Du Dir sparen. Einmal die Datei in eine TStringList laden und wieder speichern genügt. TStringList passt die Zeilenumbrüche automatisch an. [EDIT] Zumal in der Schleife gar nichts gemacht wird, da die einzelnen Zeilen keine Umbrüche enthalten. [/EDIT] |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
ups, da bin ich wohl einem Irrtum erlegen .... (mist).
[EDIT] ... fall auf die Nase ... :coder2: [/EDIT] |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
@Christian Seehase
Du bist Echt Gut. Zugegeben es ist nicht gerade die Feine Englische, Aber es funktioniert 1a. thx. |
Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32
@corpsman
wie prüfst Du jetzt, oder wandelst Du einfach ?? :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz