Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe eine Datei, die ich sequenziell einlesen will

--> Inhalt:

test.txt

-----------

A

Inhalt

Inhalt

Inhalt

A

Inhalt

Inhalt

A

Inhalt

Inhalt

Inhalt

A

...etc...

Das heisst, ich will einen Gruppenwechsel ("A") programmieren:

Lösung:

Pseudocode:

#Gruppenwehchsel = "A"

(R1)Read (File) #zeile until eof

*

if #zeile = gruppenwechsel an not 1.satz

goto (R1)

end if

*

call zeilen-intabelle-speichern

*

if #zeile = gruppenwechsel and 1.satz

call tabelle ausgeben

else

1.satz = true

end if

*

end-read

*

// letzen Satz nachlesen

*

if 1.Satz // Datei ist nicht leer

call tabelle ausgeben

end if

Ich möchte das Ganze möglichst in eine rekursive Funktion packen, habe vor längerer Zeit schon mal einen Standard hierfür gefunden, aber ...:-).

Die Funktion soll eine variable Anzahl an Gruppenwechseln beinhalten.

Wichtig hierbei ist, dass auch der erste und letzte Satz richtig verarbeitet wird.

Ich habe schon mal etwas bei normierter Programmierung gefunden.

Kann mir jemand eine Lösung geben, die beliebig viele Gruppenwechsel unterstützt?

Grüße

Patrick

Die Funktion soll eine variable Anzahl an Gruppenwechseln beinhalten.
Eine variable Anzahl sollte doch kein Problem sein. Oder meinst du eine variable (also vorher nicht bekannte) Verschachtelungstiefe? Das gibt deine Datei aber gar nicht her, da gibt es nur eine Stufe.

ja genau, es kann ja mal sein dass ich die Funktion für eine Datei hernehmen will, in der ein zwei oder dreistufiger gruppenwechsel ist...., sprich ich baue eine routine in der die ganzen gruppenkriterien abgefragt werden bevor ich die Einzelverarbeitung starte...die Frage ist eben nur: wie :-)

Merk dir die Kriterien (Name und Wert) in einer dynamischen Datenstruktur, z.B. vector. Zusätzlich merkst du dir in einer int-Variablen die "Tiefe" der aktuellen Zeile. Du musst wissen, welchem Kriteriennamen (oder welcher Tiefe) die "Blätter" des Baums (also die tiefsten Einträge) zugeordnet sind.

Bei jeder eingelesen Zeile entscheidest du dann anhand des Kriteriennamen, ob es ein Schritt nach innen (++tiefe) oder außen (--tiefe) oder nur ein neuer Wert für die aktuelle Tiefe, oder Daten für die Einzelverarbeitung sind (siehe oben).

Rekursion würde ich da nicht benutzen.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.