Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inkompitable Typen bei AssignFile (https://www.delphipraxis.net/25893-inkompitable-typen-bei-assignfile.html)

Andreas L. 14. Jul 2004 14:07


Inkompitable Typen bei AssignFile
 
Hi,
mein Code:
Delphi-Quellcode:
procedure TForm3.Button3Click(Sender: TObject);
var
  F: TextFile;
  S: String;
  datei : TFileStream;
begin
 Datei:=TFileStream.create(ExtractFilePath(Application.ExeName)+'\webver.txt',fmCreate);
 IdHttp1.Get('http://www.softprose.de/pub/website/webver.txt',Datei);
 AssignFile(F,datei);
  {$I-}
    Reset(F);
  {$I+}
  try
    if IOResult=0 then
    begin
      ReadLn(F, S);
      Label8.caption:=S;
    end;
  finally
  label7.Enabled:=TRUE;
  button4.enabled:=TRUE;
  CloseFile(F);
  Datei.free;
end;
end;
Zitat:

Zitat von Compiler
Zeile 9: Inkompitable Typen

Wie muss ich die Typen umwandeln?

Greetz un thx

fred.reichbier 14. Jul 2004 14:11

Re: Inkompitable Typen bei AssignFile
 
muss jetzt nicht klappen, aber nimm mal statt tfilestream file of tfilestream.

Andreas L. 14. Jul 2004 14:13

Re: Inkompitable Typen bei AssignFile
 
Zitat:

Zitat von fred.reichbier
muss jetzt nicht klappen, aber nimm mal statt tfilestream file of tfilestream.

:wiejetzt:

Luckie 14. Jul 2004 14:21

Re: Inkompitable Typen bei AssignFile
 
F1 -> AssignFile -> lesen -> verstehen -> anwenden -> glücklich werden.

Andreas L. 14. Jul 2004 14:26

Re: Inkompitable Typen bei AssignFile
 
Fungiert. Danke ;-)

Lösung:
datei in pchar umwandeln:
Code:
pchar(datei)
Greetz

Sharky 14. Jul 2004 14:32

Re: Inkompitable Typen bei AssignFile
 
Hai onlinehome,

AssignFile möchte als zweiten Parameter den Dateinamen als String.
Zitat:

Zitat von F1
Die Prozedur weist einer Dateivariablen den Namen einer externen Datei zu.

[Edit]Ich sollte nicht schreiben und vor dem posten erst noch telefonieren.

Luckie 14. Jul 2004 14:35

Re: Inkompitable Typen bei AssignFile
 
Das kann nicht funktionieren:
Delphi-Quellcode:
procedure AssignFile(var F; FileName: string);
:gruebel:

Andreas L. 14. Jul 2004 15:39

Re: Inkompitable Typen bei AssignFile
 
Doch, weil die Delphi Hilfe meint das man anstatt String auch Pchar verwenden kann:

Zitat:

Zitat von Delphi-Hilfe
In Delphi können Sie mit AssignFile eine Dateivariable initialisieren. F ist eine Dateivariable eines beliebigen Dateityps. FileName enthält einen Ausdruck des Typs String bzw. Pchar (wenn die erweiterte Syntax aktiviert ist).


Luckie 14. Jul 2004 15:51

Re: Inkompitable Typen bei AssignFile
 
Ja und? Deine Variable datei ist aber vom Typ TFileStream!!! AssignFile erwartet aber als zweiten Paramter eine Zeichenkette in der der Pfad und der Name der Datei steht, die der Dateivariablen F zu gewiesen werden soll. Den Cast nach PChar mag der Kompiler zwar akzeptiren, aber funktionieren wird es nicht.

Desweitern könnte es Probleme geben, weil der FileStream die datei noch nicht geschlossen hast und du sie mit AssignFile und reset öffnen willst.

Da es sich ja eh um eine Textdatei handelt, warum nicht so:
Delphi-Quellcode:
var
  sl: TStringlist;
begin
  sl := TStringList.Create;
  try
    sl.Text := IDHTTP.Get('...');
    Label1.Caption := sl.Strings[0];
  finally
    FreeAndNil(sl);
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 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