Basic Pascal Tutorial/Chapter 2/Files/de

From Lazarus wiki
Jump to navigationJump to search

български (bg) Deutsch (de) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 


2D - Dateien

(Autor: Tao Yue, Übersetzung ins Deutsche)


Das Lesen aus einer Datei anstelle der Konsole (Tastatur) ist möglich:

read (file_variable, argument_list);
write (file_variable, argument_list);

Ähnlich ist es mit readln und writeln. file_variable wird wie folgt deklariert:

var
  ...
  filein, fileout : text;

Der Datentyp text zeigt an, dass es sich bei der Datei um reinen Text handelt.

Nachdem wir eine Variable für die Datei deklariert haben und bevor wir von ihr lesen oder in sie schreiben, müssen wir die Variable dem Dateinamen auf der Festplatte zuordnen und die Datei öffnen. Dies kann auf zwei Arten geschehen. Typischerweise:

reset (file_variable, 'filename.extension');
rewrite (file_variable, 'filename.extension');

reset öffnet eine Datei zum Lesen, und rewrite öffnet eine Datei zum Schreiben. Eine mit reset geöffnete Datei kann nur mit read und readln verwendet werden. Eine mit rewrite geöffnete Datei kann nur mit write und writeln verwendet werden.

Turbo Pascal führte die Zuweisungsnotation ein. Zuerst weisen Sie einer Variablen einen Dateinamen zu, dann rufen Sie reset oder rewrite nur mit der Variablen auf.

assign (file_variable, 'filename.extension');
reset (file_variable);

Die Darstellung des Pfades ist je nach Betriebssystem unterschiedlich. Windows verwendet Backslashes und Laufwerksbuchstaben aufgrund seiner DOS-Erfahrung (z.B. c:\directory\name.pas), während macOS und Linux aufgrund ihrer UNIX-Herkunft Schrägstriche verwenden.

Nachdem Sie mit der Datei fertig sind, können Sie sie schließen:

close (File_Identifier);

Hier ist ein Beispiel für ein Programm, das Dateien verwendet. Dieses Programm wurde für Turbo Pascal und DOS geschrieben und erzeugt file2.txt mit dem ersten Zeichen aus file1.txt:

program CopyOneByteFile;

var
   mychar : char;
   filein, fileout : text;

begin
   assign (filein, 'c:\file1.txt');
   reset (filein);
   assign (fileout, 'c:\file2.txt');
   rewrite (fileout);
   read (filein, mychar);
   write (fileout, mychar);
   close(filein);
   close(fileout)
end.
 ◄   ▲   ►