Werbung

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Vokale in einer Textdatei

Dieses Thema im Forum "Pascal" wurde erstellt von Nort3lo, 21. Februar 2018.

  1. Nort3lo

    Nort3lo New Member

    Hallo zusammen,

    ich habe vor einigen Tagen damit begonnen Pascal zu lernen und stehe nun vor folgender Aufgabe.
    Geschrieben werden soll ein Programm, dass die Anzahl der Vokale in einer Textdatei zählt und dies am Bildschirm ausgibt.
    Nachdem ich mich da mal ran getastet habe, scheitere ich nun allerdings schon am Öffnen der Datei :(, denn wenn ich hier den Pfad eingebe ist Schluss. Kann mir jemand sagen was ich an dieser Stelle falsch mache?

    Vielen Dank!

    Folgendes habe ich bisher:


    program vokale (Datei);


    var Datei: Text;
    Pfad: string;
    Anzahl: integer;
    a: boolean;
    begin
    Writeln('Welche Datei soll gelesen werden: (Pfad)');
    Readln (Pfad);
    Assign (Datei, Pfad);
    Reset (Datei);
    while not EOF do
    begin
    Readln (Datei);
    if a then inc(Anzahl);
    Close (Datei);
    end;
    Writeln (Anzahl);
    End.
  2. coding-board

    coding-board Member

    Werbung
  3. Mat

    Mat Active Member c-b Experte

    Grad mal auf http://wiki.freepascal.org/Text nachgesehen. Ich weiß nicht, ob du FPC, Delphi oder eine alte Pascal-Version benutzt.. aber das Beispiel dort sollte auch bei dir gehen. Vielleicht lauten die Funktionsnamen ein bisschen anders und try-catch geht bei dir nicht, aber davon abgesehen sollte es bei dir laufen.

    Bevor du versucht, alles auf einmal zu wuppen, könntest du erstmal das Laden von Textdateien zum Laufen kriegen. Also zum Rumprobieren würde ich folgendes machen:
    • Die Testdatei vorerst direkt übergeben statt Benutzereingabe, damit du schneller testen und fehlerhafte Benutzereingaben ausschließen kannst
    • Weg mit den unnötigen Variablen Pfad, Anzahl, a und her mit einem neuen String um die aktuelle Zeile zwischenzuspeichern
    • Ich weiß nicht, ob while not EOF sich automatisch auf Datei bezieht, mach lieber EOF(Datei)
    • Ich weiß nicht, ob du dich darauf verlassen kannst, dass Variablen richtig vorbelegt sind. Deswegen initialisiere sie am besten selbst.
    • Ich weiß nicht, ob ReadLn(Datei) das ausgelesene direkt in einen Puffer schreibt, auf den du zugreifen kannst..also packe die Zeile lieber selber in eine Variable, mit der du dann auch weiterarbeiten kannst: ReadLn(Datei, ZeileTxt)
    • Du schließt den Dateistream innerhalb der while-Schleife.. das kann gar nicht richtig sein.. also erst danach schließen
    • Wenn das einlesen läuft, kannst du mal schauen, ob du eine Dokumentation für Text bzw TextFile und string findest und dann überlege, was besser ist und was überhaupt möglich ist:
      • zeichenweise auslesen und jeweils prüfen
      • zeilenweise auslesen und die ganze Zeile mit einem regulären Ausdruck prüfen oder nochmal mit einer Schleife über jeden Buchstaben rutschen

    An deinen derzeitigen Code angepasst könnte das zeilenweise auslesen so aussehen:

    Code (Pascal):
    Quelltext kopieren
    1. program vokale;
    2.  
    3. var
    4.   Datei     : Text;
    5.   ZeileNr  : integer;
    6.   ZeileTxt : string;
    7.  
    8. begin
    9.   Assign(Datei, 'vokale.txt');
    10.   Reset(Datei);
    11.  
    12.   ZeileNr := 0;
    13.   while not EOF(Datei) do
    14.   begin
    15.     Readln(Datei, ZeileTxt);
    16.     Inc(ZeileNr);
    17.     WriteLn(ZeileNr, ': ', ZeileTxt);
    18.   end;
    19.  
    20.   Close(Datei);
    21.   ReadLn;
    22. end.
Die Seite wird geladen...
Ähnliche Themen - Vokale Textdatei Forum Datum
Beliebige Textdatei aus Ordner in Excel importieren (formatiert) Visual Basic, Visual Basic for Applications (VBA) 11. Mai 2018
Array als Tabelle in Textdatei speicher PHP - Hypertext Preprocessor 17. April 2017
Zeiten aus einer Textdatei addieren C/C++ 26. Januar 2017
Inhalt von Textdatei Zeilenweise in Variable/Array C/C++ 1. Juni 2016
Batch - Variablen mit Textdatei vergleichen Sonstige Scriptsprachen 12. April 2016