Assign oder AssignFile ?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
stefanhuglfing
Beiträge: 4
Registriert: Mo 4. Jan 2016, 08:30

Assign oder AssignFile ?

Beitrag von stefanhuglfing »

Ich habe uf dieser Wikiseite: http://wiki.freepascal.org/untyped_files/de

das erste Programm angeschaut,
dann eine Textdatei mit Namen Beispiel.txt erstellt und
folgendes Programm in Anlehnung an das Beispiel geschrieben:

Code: Alles auswählen

 
var
  datDatei: TextFile;
  strName: String;
 
begin
  AssignFile(datDatei,'Stefan/FreePascal/Beispiel.txt'); // Weist der Variablen txtDatei den Namen der Datei zu und öffnet die Datei
  ReWrite(datDatei);                                                   // Die alte Datei wird überschrieben
  strName := 'qwert';
  WriteLn(datDatei, strName);                                    // Schreibt den ersten Datensatz in die neue Datei
  CloseFile(datDatei);
end.
 
Nun bekomme ich als Fehlermeldungen:
- Identifier not found "AssignFile"
- Identifier not found "CloseFile"


Wenn ich "Assign" statt "AssignFile" und "Close" statt "CloseFile" schreibe funktioniert alles.

Gut, ich kann so erreichen, was ich will.
Aber ich frage mich:
- Warum steht im Wiki "AssignFile" statt "Assign"?
- Gibt es "AssignFile" und ist das etwas anderes als "Assign"?
- Muss ich erst entsprechende Bibliotheken einbauen?

Freue mich auf Antworten
Stefan
Zuletzt geändert von Lori am Mo 4. Jan 2016, 12:50, insgesamt 1-mal geändert.
Grund: Highlighter

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Assign oder AssignFile ?

Beitrag von Socke »

Herzlich Willkommen im Forum!

stefanhuglfing hat geschrieben:- Warum steht im Wiki "AssignFile" statt "Assign"?
- Gibt es "AssignFile" und ist das etwas anderes als "Assign"?
- Muss ich erst entsprechende Bibliotheken einbauen?

Assign und AssignFile sind identisch (AssignFile tut nichts weiter als Assign aufzurufen).
AssignFile steht nur in den Compiler-Modes ObjFPC und Delphi zur Verfügung. Du musst also ggf. einfach {$MODE OBJFPC} am Anfang deines Quelltextes einfügen.

P.S. ich habe mir die Freiheit genommen, die Prozeduren im Wiki entsprechend auszutauschen
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

stefanhuglfing
Beiträge: 4
Registriert: Mo 4. Jan 2016, 08:30

Re: Assign oder AssignFile ?

Beitrag von stefanhuglfing »

Socke hat geschrieben:P.S. ich habe mir die Freiheit genommen, die Prozeduren im Wiki entsprechend auszutauschen


Danke!
Ein schöner Nebeneffekt meiner Frage.

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: Assign oder AssignFile ?

Beitrag von theo »

Socke hat geschrieben:P.S. ich habe mir die Freiheit genommen, die Prozeduren im Wiki entsprechend auszutauschen

Es gtibt schon einen Grund dafür, dass man "Assign" für File nicht mehr haben will, nämlich die Verwechslungsgefahr mit TPersistent.Assign.

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: Assign oder AssignFile ?

Beitrag von wp_xyz »

theo hat geschrieben:
Socke hat geschrieben:P.S. ich habe mir die Freiheit genommen, die Prozeduren im Wiki entsprechend auszutauschen

Es gtibt schon einen Grund dafür, dass man "Assign" für File nicht mehr haben will, nämlich die Verwechslungsgefahr mit TPersistent.Assign.

Ich habe den Wiki-Artikel entsprechend ergänzt.

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: Assign oder AssignFile ?

Beitrag von theo »

wp_xyz hat geschrieben:Ich habe den Wiki-Artikel entsprechend ergänzt.

Finde ich gut.
Ich persönlich hätte wahrscheinlich das Beispiel auf AssignFile belassen und dazu geschrieben, warum man es im reinen FPC Mode auf "Assign" ändern muss.
Der FPC Modus ist unter Lazarus afaik nie Standard auch nicht beim "einfachen Programm". Dort wird der ObjFPC Modus zwar nicht in die Datei geschrieben, aber via Projekteinstellungen ist er trotzdem da.
Aber klar, der FPC Modus ist immer noch Standard beim Arbeiten außerhalb Lazarus. Fragt sich, wie viele User das betrifft.

Da könnte man lange diskutieren und so wichtig ist es nicht.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Assign oder AssignFile ?

Beitrag von Socke »

theo hat geschrieben:
wp_xyz hat geschrieben:Ich habe den Wiki-Artikel entsprechend ergänzt.

Finde ich gut.
Ich persönlich hätte wahrscheinlich das Beispiel auf AssignFile belassen und dazu geschrieben, warum man es im reinen FPC Mode auf "Assign" ändern muss.
Der FPC Modus ist unter Lazarus afaik nie Standard auch nicht beim "einfachen Programm". Dort wird der ObjFPC Modus zwar nicht in die Datei geschrieben, aber via Projekteinstellungen ist er trotzdem da.
Aber klar, der FPC Modus ist immer noch Standard beim Arbeiten außerhalb Lazarus. Fragt sich, wie viele User das betrifft.

Da könnte man lange diskutieren und so wichtig ist es nicht.

Vielleicht sollten die Wiki-Seiten zumindest konsistent sein. Von http://wiki.freepascal.org/File_types/de ausgehend findet ihr sowohl die besprochene Seite als auch Seiten zu Binärdateien und typisierten Dateien. Die hatte ich noch nicht von AssignFile auf Assign umgestellt.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: Assign oder AssignFile ?

Beitrag von wp_xyz »

Was ist denn eine "typisierte" und eine "untypisierte Textdatei"? Ich kenne nur "typisierte Datei", "untypisierte Datei" und "Textdatei".

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Assign oder AssignFile ?

Beitrag von Socke »

wp_xyz hat geschrieben:Was ist denn eine "typisierte" und eine "untypisierte Textdatei"? Ich kenne nur "typisierte Datei", "untypisierte Datei" und "Textdatei".

Es gibt:
  • file of Byte - Binärdaten
  • Textfile - Textdateien
  • file of record type - typisierte Dateien
Der Term "typisierte Textdatei" beschreibt wohl eine typisierte Datei, deren Basistyp nur Zeichendaten (Char/String) enthält - ich hab's im Wiki bereits korrigiert.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

stefanhuglfing
Beiträge: 4
Registriert: Mo 4. Jan 2016, 08:30

Anführunszeichen für Single

Beitrag von stefanhuglfing »

Es müssten auch noch die Anführunszeichen um 1800.23 weg, meint mein Compiler.

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: Assign oder AssignFile ?

Beitrag von wp_xyz »

Da hat er recht. Korrigiert.

Jole
Beiträge: 114
Registriert: Fr 4. Jul 2014, 14:39
OS, Lazarus, FPC: Linux
CPU-Target: amd64

Re: Assign oder AssignFile ?

Beitrag von Jole »

Ich glaube die Turbo Pascal-Entwickler von Borland haben die bezeichnung "TEXT" als Dateityp etwas ungluecklich gewaehlt. Ich hab anfangs immer gedacht das damit nur Zeichen/Strings verwendet werden duerfen, ich war dann ziemmlich erstaunt, als ich festgestellt hab, dass damit jeder beliebige
Datentyp verwendet werden kann.

Antworten