Einzelnen Beitrag anzeigen

Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Beginner: Textverarbeitung

  Alt 30. Nov 2016, 16:08
Delphi-Quellcode:
program Textverarbeitung;
{$APPTYPE CONSOLE} uses sysutils;
var textout,textin: Text;
    ch: Char;
begin
  Assignfile(textin,'test.in');
  Assignfile(textout,'test.out');
  RESET(textin); // Datei textin öffnen
  REWRITE(textout); // Datei textout zum überschreiben öffnen
  while not(eof(textin)) do //eof True wenn Dateiende
  begin
    if eoln(textin) then //eoln True wenn Zeilenende
    begin
      writeln(textout); // Schreibt <cr><lf> in die textout Datei
      readln(textin); // Liest <cr><lf> aus der textin Datei (und verwirft es) <- Kein Semikolon nötig (es ist aber auch nicht verboten eins zu machen!!)
    end // kein Semikolon, weil der block mit "else" weiter geht
    else
    begin
      read(textin,ch); // Liest ein Zeichen aus der textin - Datei
      write(textout,ch); // schreibt das soeben gelesene Zeichen in die textout - Datei
      // hier kann einfach ein Zeichenzähler geführt werden.
      // platz für den Wortzähler...
    end;
  end;
  CloseFile(textout); //Schließt textout
  CloseFile(textin); //Schließt textin
  readln();
end.

Schreib stets nur eine Anweisung pro Zeile, das ist dann auch besser zu kommentieren (und später auch zu debuggen).
Das erste Semikolon "kann" weggelassen werden, weil es die letzte Anweisung vor dem "End" ist - "muss" aber nicht, ich empfehle dir es immer zu setzen.
Das zweite Semikolon ist nicht erlaubt, weil der begin/end-Block über das "else" noch nicht abgeschlossen ist.
Dateien die du öffnest solltest du auch wieder schließen, das gilt auch für textin.

Zum Zählen gibts hier ohnehin schon Hinweise und selber lösen macht bekanntlich schlauer
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat