[Tustep-Liste] Dateiübergreifendes Zählen

Kuno Schälkle Schaelkle at zdv.uni-tuebingen.de
Wed May 4 15:07:58 CEST 2005


Lieber Herr Kollatz,

> Zunächst habe mit den folgenden Anweisungen ermittelt,
> wieviele Dateien mit der Extension .chr es ... gibt:
>
> Build R_TABLE chr1 = ":.chr:"
> SET files   = files ()
> SET allechr = filter (files,chr1,-)
>
> Nachdem nun erfolgreich geklärt ist, wieviele .chr - Dateien es gibt,
> will ich im folgenden ermitteln, wie oft in den Dateien der
> Variable <allechr> > (die z.B. die Dateien a.chr'b.chr'c.chr enthält)
> eine bestimmte Zeichenfolge "xyz" vorkommt.
>
> a.chr = 12 * xyz
> b.chr = 7 * xyz
> c.chr = 14 * xyz
> Gesamtzahl xyz = 33

Fuer den Fall, dass keine der betroffenen Dateien groesser als
4 MB ist, koennte vermutlich folgendes Makro das Problem loesen:

$$=- {}
MODE VARIABLE

01: BUILD S_TABLE zflg = "|xyz|"
02: BUILD R_TABLE ext  = "|*.chr|"
03: SET files = FILES ()
04: SET files = FILTER (files, ext, -)

05: SET gesamtsumme = 0
06: LOOP name = files
07:    SET daten  = FILE (name)
08:    SET zahlen = COUNT (daten, zflg)
09:    SET summe = 0
10:    LOOP zahl = zahlen
11:       SET summe = summe + zahl
12:    ENDLOOP
13:    SET summe = CENTER (summe, +6)
14:    + {summe}  {name}
15:    SET gesamtsumme = gesamtsumme + summe
16: ENDLOOP
17: SET gesamtsumme = CENTER (gesamtsumme, +6)
18: + {gesamtsumme}  insgesamt

01: Tabelle mit den zu zählenden Zeichenfolgen
02: Tabelle mit den Dateiendungen
03: files = alle angemeldeten Dateien
04: files = alle angemeldeten Dateien mit der entspr. Endung
06: name = jeweils ein Name von diesen Dateien
07: daten = Inhalt der jeweiligen Datei
08: zahlen = Häufigkeit der Zeichenfolge für jede einzelne Zeile
11: summe = Summe der einzelnen Häufigkeiten
13: Summe rechtsbündig in ein 6-stelliges Feld
14: Summe und Dateiname protokollieren
17: Gesamtsumme  rechtsbündig in ein 6-stelliges Feld
18: Gesamtsumme protokollieren

Herzliche Gruesse
Kuno Schaelkle



More information about the Tustep-Liste mailing list