AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie Erkenne ich den Unterschied zwischen Unix und Win32 file
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Erkenne ich den Unterschied zwischen Unix und Win32 file

Ein Thema von Corpsman · begonnen am 27. Dez 2006 · letzter Beitrag vom 30. Dez 2006
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#1

Wie Erkenne ich den Unterschied zwischen Unix und Win32 file

  Alt 27. Dez 2006, 13:19
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:
  var f: Textfile;
begin
assignfile(f,'C:\bla.txt');
reset(f);
..

closefile(f);
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.

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.
Angehängte Dateien
Dateityp: zip files_109.zip (414 Bytes, 2x aufgerufen)
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#2

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 13:26
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:
//==============================================================================
// 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;
Ich hoffe es hilft Die weiter...

Gruß
ascotlx
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 13:33
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.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 13:34
@ascotlx: Probleme macht diese Funktion jedoch wenn du ein Windows-File erwischst. Dort steht dann nämlich #13#13#10
  Mit Zitat antworten Zitat
Ratte

Registriert seit: 12. Dez 2003
Ort: Erfurt
345 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 13:55
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
Schiffsratte der U.S.S. Delphipraxis, Laderaum 4538
BUSH:= TTerminator.create;
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#6

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 13:58
@malo

ok ... bei meinen Programmen, weiss ich woher ich die Dateien habe(hole).
Aber vielleicht hilft das ja weiter....

  if Pos(#13#10, str) > 0 then Gruss
ascotlx
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 14:36
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]
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 ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#8

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 16:58
ups, da bin ich wohl einem Irrtum erlegen .... (mist).

[EDIT]
... fall auf die Nase ...
[/EDIT]
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 17:21
@Christian Seehase

Du bist Echt Gut.

Zugegeben es ist nicht gerade die Feine Englische, Aber es funktioniert 1a.

thx.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#10

Re: Wie Erkenne ich den Unterschied zwischen Unix und Win32

  Alt 27. Dez 2006, 17:56
@corpsman
wie prüfst Du jetzt, oder wandelst Du einfach ??
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 14:22 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