Sign in Join
Wiki copytemporary

Revision 1 of 1, by Trev on 2-13-2020. The page as it is now.

DOS2UNIX/de

Zurück zur Seite Zeilenumbruch / Newline.

Das Unterprogramm konvertiert die Zeilenumbrüche einer ASCII- bzw. ANSI-Textdatei vom DOS-Format in das UNIX-Format.

pascal
uses
  FileUtil, ...;

  ...

procedure subDos2Unix(const conStrQuellDateiname, conStrZielDateiname: string);
// konvertiert Zeilenumbrüche von Windows, DOS, OS/2, CP/M oder TOS (Atari) nach
// Unix, Linux, Android, Mac OS X, AmigaOS, BSD usw.
var
  txtQuelldatei: file of char;
  txtZieldatei: file of char;
  chrZeichen: char;
  booZeiger: boolean = False;

begin

  assignfile(txtQuelldatei, UTF8ToSys(conStrQuellDateiname));
  assignfile(txtZieldatei, UTF8ToSys(conStrZielDateiname));
  Rewrite(txtZieldatei);
  Reset(txtQuelldatei);
  Reset(txtZieldatei);

  while not EOF(txtQuelldatei) do
  begin

    Read(txtQuelldatei, chrZeichen);

    if (chrZeichen = #13) then
    begin
      booZeiger := True;
      Continue;
    end;

    if (chrZeichen = #10) and (booZeiger = True) then
    begin
      booZeiger := False;
      Write(txtZieldatei, chrZeichen);
      Continue;
    end;

    booZeiger := False;
    Write(txtZieldatei, chrZeichen);

  end;

  closefile(txtQuelldatei);
  closefile(txtZieldatei);

end;

Aufruf unter DOS, Windows:

pascal
  subDos2Unix('E:\Test_alt.txt', 'E:\Test_neu.txt');

Aufruf unter Linux:

pascal
  subDos2Unix('/home/user/Test_alt.txt', '/home/user/Test_neu.txt');

From the Free Pascal wiki, page "DOS2UNIX/de", as it stood on 2020-02-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.