Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Konsolenanwendung: TextFile (https://www.delphipraxis.net/108432-konsolenanwendung-textfile.html)

cherry 13. Feb 2008 14:38


Konsolenanwendung: TextFile
 
Hi

Ich habe jetzt ca. 2h Damit verbracht nach einer Lösung zu suchen, aber hab leider nichts gefunden das mir weiter hilft...
Alles was ich will ist eine Datei Zeile für Zeile in eine StringList lesen...

das ist mein Code der aber nicht funktioniert. d.h. in die While -Schlaufe kommt es gar nicht. Das Programm startet auf und
schliesst wieder, keine Fehlermeldung nichts...

//EDIT: Doch, wenn ichs in der Komandozeile starte dann erhalte ich eine EAccess Violation...

Delphi-Quellcode:
if FileExists(filepath) then
  begin
    AssignFile(upi, filepath);
    Reset(upi);
    while not Eof(upi) do
    begin
      ReadLn(upi, line);
      s.Add(line);
    end;
    CloseFile(upi);
    writeln(s.Text);
  end;
  readln;
Allgemein gibt es leider sehr zu wenig Hilfestellung zu Delphi- Konsolenanwendungen. Macht ihr Konsolenanwendungen mit C++ oder wird das einfach selten gebraucht?

Bin für jede Hilfe Dankbar.
Grüsse aus der Schweiz... Cherry

himitsu 13. Feb 2008 14:43

Re: Konsolenanwendung: TextFile
 
was hat'n eine Consolenanwendung mit der Hilfe zu tun?

die Hilfe ist für Delphi gemacht und mit Delphi kann man Cviele mögliche Anwendungstypen erstellen ...
also meiner Meinung nach biete sie ausreichend Hilfestellungen, auch diesbezüglich.

Aber mal einige Fragen:

wo ist das Problem / was geht nicht.

und warum nimmst du nicht LoadFromFile?
die Stringlist hat schließlich eine Schöne Funktion zum Einlesen von Textdateien.


[Edit]
Wo (Zeile/Befehl) und welche Fehlermeldung kommt denn?

cherry 13. Feb 2008 14:46

Re: Konsolenanwendung: TextFile
 
LoadFromFile klingt gut... Probier ich gleich mal aus...

eben den Code habe ich ja gepostet...
Das Programm startet auf und schliesst wieder... //Sollte aber eigentlich den eingelesenen Text der Datei ausgeben und keine EAccess violation!

Weisst du was mit meinem Code nicht i.O ist?

taaktaak 13. Feb 2008 14:48

Re: Konsolenanwendung: TextFile
 
Moin, Moin,
wenn dieser Weg unbedingt gegangen werden soll, dann bitte mit einer minimalen Fehlerbehandlung, z.B.

Delphi-Quellcode:
{$I-} reset(upi) { {$I+}
if IOResult=0 then
  while ...
Auf diesem Weg kann man natürlich auch einen Fehlercode auswerten ...

cherry 13. Feb 2008 14:49

Re: Konsolenanwendung: TextFile
 
habe nun

Delphi-Quellcode:
s.LoadFromFile(filepath);
ausprobiert! Funktioniert nicht!

Folgende Fehlermeldung:


Q:\DATEN\Projekte\UPI ENTRY Eraser>delupientry
Exception EAccessViolation in Modul delupientry.exe bei 000102B8.
Zugriffsverletzung bei Adresse 004102B8 in Modul 'delupientry.exe'. Lesen von Ad
resse 00000000.

DeddyH 13. Feb 2008 14:50

Re: Konsolenanwendung: TextFile
 
Ist denn die StringListe überhaupt instanziiert?

cherry 13. Feb 2008 14:50

Re: Konsolenanwendung: TextFile
 
Zitat:

Zitat von taaktaak
Moin, Moin,

Delphi-Quellcode:
{$I-} reset(upi) { {$I+}
if IOResult=0 then
  while ...

Den Fehler habe ich ja:


Q:\DATEN\Projekte\UPI ENTRY Eraser>delupientry
Exception EAccessViolation in Modul delupientry.exe bei 000102B8.
Zugriffsverletzung bei Adresse 004102B8 in Modul 'delupientry.exe'. Lesen von Ad
resse 00000000.

Ist bei allen meinen Varianten immer dasselbe!

DeddyH 13. Feb 2008 14:51

Re: Konsolenanwendung: TextFile
 
Aber ein
Delphi-Quellcode:
s := TStringList.Create;
hast Du drin?

taaktaak 13. Feb 2008 14:52

Re: Konsolenanwendung: TextFile
 
...lesen von 00000000000 >> da existiert irgendein Objekt nicht
dann ist der Fehler nicht im File I/O zu suchen

cherry 13. Feb 2008 14:56

Re: Konsolenanwendung: TextFile
 
:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:

War die fehlende Initialisierung... bitte nicht weitersagen...

jetzt möchte ich aber den Text Ausgeben...


Delphi-Quellcode:
writeln(s.Text);
ist wohl nicht i.O, denn es erscheint kein Text

//EDIT: Habe beim Debuggen festgestellt, dass die While Schleife nicht durchlaufen wird... why this?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.
Seite 1 von 2  1 2      

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