AGB  ·  Datenschutz  ·  Impressum  







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

Fehlerhafte Textdatei

Ein Thema von winkelmesser · begonnen am 27. Mai 2006 · letzter Beitrag vom 29. Mai 2006
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Fehlerhafte Textdatei

  Alt 28. Mai 2006, 12:18
Herzlich willkommen in der Delphi-PRAXiS, winkelmesser.

Deine Textdateien sind ganz sicher keine. Das Zeichen, ab dem die Textdatei nicht weiter gelesen wird, ist das Steuerzeichen EOF (#26). Es signalisiert der Leseroutine das Ende der Datei. Da die Leseroutinen unabhängig vom Kommunikationskanal sein sollen, wird so auch bei Dateien das vorzeitige Ende erreicht - obwohl das Dateisystem genau weiß, dass noch viele Zeichen danach folgen. Da hilft tatsächlich nur das Öffnen als untypsierte Datei oder FileStream. Aber selbst dann kommst du nicht so richtig weiter, wenn du nicht den internen Aufbau der Datei kennst.

Wenn du "Textdatei" vermutest, dann vielleicht deshalb, weil die Datei mit einem Textverarbeitungsprogramm erstellt wurde? Vielleicht haben diese Dateien alle die gleiche Dateinamenserweiterung? Oder weißt du sogar mit welchem Programm sie erzeugt wurden? Was willst du mit diesen Dateien machen?

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
winkelmesser

Registriert seit: 9. Mär 2005
Ort: Hannover
17 Beiträge
 
Delphi 7 Personal
 
#12

Re: Fehlerhafte Textdatei

  Alt 28. Mai 2006, 14:27
Schade und dank an allen

Die Datei kommt von einer CNC Drehmaschine und ist eine Kompletsicherung der eigenen CNC Programme

Es gibt zwei Möglichkeiten die Programme ca. 250 von der CNC auf einen PC zu sichern

1. Mann notiert sich die Programmnamen und gibt diese am PC im Programm der den Datentransfer steuert ein und startet den Transfer und das ca. 250 mal.
2. Mann gibt irgendeinen Namen ein und macht eine Komplettsicherung von allen Programmen auf einmal.


Und jetzt kommt mein Programm ins Spiel mein Erstes!

In einer FileListBox wähle ich die Komplettsicherung aus
In der CheckListBox werden dann alle Programme Aufgelistet und man kann eine oder auch alle auf mal erstellen lassen

Klappt ja auch sehr gut wenn einige Dateien nicht dieses Zeichen „EOF (#26) „ in einigen Zeilen hätten.


winkelmesser
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Fehlerhafte Textdatei

  Alt 28. Mai 2006, 15:09
Nicht aufgeben. Es ist etwas schwieriger, aber nicht unlösbar. Du musst einfach nur die Gesamtdatei zeichenweise in einen String einlesen. Bei jedem Vorkommen von EOF nimmst du den bis dahin erhaltenen String und weist ihn der Text-Eigenschaft einer StringList zu. Dadurch wird dir der String in Programmzeilen zerlegt. In der ersten Zeile steht der Programmname, gekennzeichnet durch ein Prozentzeichen am Zeilenbeginn. In der zweiten Zeile steht der Speicherpfad. Die restlichen Zeilen sind ProgrammCode. Du musst nur die zwei ersten Zeilen interpretieren und daraus einen Namen für das Dateisystem erzeugen. Mit diesem Namen kannst du dann den Code für das CNC-Programm mit der Methode StringList.SaveToFile() auf deiner Festplatte speichern.

Du schaffst das.

marabu


Edit: Im Anhang meine Lösung - falls du später vergleichen möchtest. Es ist ein Konsolenprogramm und meine Testdaten habe ich beigepackt. Der Aufruf geschieht mit zwei Parametern, aber das sagt das Programm, wenn man es ohne aufruft.
Angehängte Dateien
Dateityp: zip winkelmesser_116.zip (1,4 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
winkelmesser

Registriert seit: 9. Mär 2005
Ort: Hannover
17 Beiträge
 
Delphi 7 Personal
 
#14

Re: Fehlerhafte Textdatei

  Alt 29. Mai 2006, 15:23
Dank an marabu

Hat lange gedauert aber es klappt echt Super

Und so sieht der Programmcode aus

Delphi-Quellcode:
procedure Tform1.TextRep(sender: TObject);
  var sl : TStringList;
begin
  sl := TStringList.Create;
  sl.LoadFromFile(verzP);
  [b]sl.Text := StringReplace(sl.Text, '', '', [rfReplaceAll]);[/b]
  sl.SaveToFile(verzP);
  form1.FileListBox1.Refresh;
end;
Edit:
ein Problem habe ich noch wenn die Datei Schreibgeschützt ist gibt er eine Fehlermeldung aus

Winkelmesser

[edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Fehlerhafte Textdatei

  Alt 29. Mai 2006, 15:31
Hallo Winkelmesser,

Du kannst ja vorher das Attribut entsprechend setzen -> http://www.delphipraxis.net/internal...ct.php?t=60283

oder auch damit -> function FileSetAttr(const FileName: string; Attr: Integer): Integer;

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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