ASCII File auslesen und gewisse Zeichen sichern

Von: , Frage gestellt am Mo, 4. Sep 2006


Hallo ihr!

Hab folgendes Problem:

Ich möchte aus einer bestehenden txt Datei (ASCII) gewisse
Zeichen (z.B. das 5te, 6te, 80te, etc.) auslesen und dieses
in einem neuen txt File in einem gewissen Format sichern.

Gibts da ein Tool dafür oder ähnliches?

LG & Vielen Dank für eure Zeit
Harry1984

23 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: ASCII File auslesen und gewisse Zeichen sicher

    Hallo Ich möchte aus einer bestehenden txt Datei (ASCII) gewisse
    Zeichen (z.B. das 5te, 6te, 80te, etc.) auslesen und dieses
    in einem neuen txt File in einem gewissen Format sichern.
    Gibts da ein Tool dafür oder ähnliches?
    Markus hat das Stichwort schon gegeben ;-),
    wenns irgandwas mit text sein soll, geht
    oft perl am besten. Das kann man sich
    leicht auf dem PC installieren.

    Für Dein Problem sähe die (ausbaubare)
    Lösung so aus (suchzeichen.pl):

       push @pos, shift  for 0 .. $#ARGV;           # Positionen einlesen
    chomp and $text .= $_ while(<>);             # Datei einlesen
    print substr($text, $_-1, 1), ' ' for @pos;  # Zeichen ausgeben

    Aufrufen würde man das im Dos-Fenster (oder Unix-shell) mit:
     C:\Temp> suchzeichen.pl 8 10 20 32 34 < meintext.txt > zeichen.txt 
    wonach die besagten Zeichen aus "meintext.txt" in der
    Datei "zeichen.txt" stehen würden.

    Grüße

    CMБ

  2. Antwort von nach 3 Stunden 0 hilfreich
    Re: ASCII File auslesen und gewisse Zeichen sicher

    Und wie funktioniert das mit Perl? Kenn mich darin übrhaupt nicht aus...?

    • Antwort von nach 3 Stunden 0 hilfreich
      Re^2: ASCII File auslesen und gewisse Zeichen sich

      Hallo nochmal. Und wie funktioniert das mit Perl? Kenn mich darin übrhaupt
      nicht aus...?
      Das hat der junge Mann doch schon gezeigt ;-)
      Unter Windows installiert man 'ActivePerl' und unter Unix/Linux führt man den Programmcode i.A. mit '/usr/bin/perl suchzeichen.pl' aus. Für Windows i.A. 'C:\perl\bin\perl suchzeichen.pl'. Vorausgesetzt, die erforderlichen Dateien existieren in den genannten Pfaden, sollte das Programm dann eine gute Ausgabe liefern. 'ActivePerl' gibt es irgendwo als Installer unter www.activestate.com

      HTH
      mfg M.L.

    • Antwort von nach 4 Stunden 0 hilfreich
      Re^2: ASCII File auslesen und gewisse Zeichen sich

      Hallo Harry, Und wie funktioniert das mit Perl? Kenn mich darin übrhaupt
      nicht aus...?
      Ehe wir Dir hier Perl aufdrücken ...

      Ich ahne, dass Du etwas anderes machen willst,
      als Du beschrieben hast. ich vermute mal, Du willst
      aus einer Datei (z.B. meintext.txt):

        ab cd eh gh ij kl mn op qr sw uv wx yz ab cd ef gh ij
      ab cd ea gh ij kl mn op qr si uv wx yz ab cd ef gh ij
      ab cd el gh ij kl mn op qr se uv wx yz ab cd ef gh ij
      ab cd el gh ij kl mn op qr s- uv wx yz ab cd ef gh ij
      ab cd eo gh ij kl mn op qr sg uv wx yz ab cd ef gh ij
      ab cd e- gh ij kl mn op qr se uv wx yz ab cd ef gh ij
      ab cd eh gh ij kl mn op qr sh uv wx yz ab cd ef gh ij
      ab cd ea gh ij kl mn op qr st uv wx yz ab cd ef gh ij
      ab cd er gh ij kl mn op qr ss uv wx yz ab cd ef gh ij
      ab cd er gh ij kl mn op qr s_ uv wx yz ab cd ef gh ij
      ab cd ey gh ij kl mn op qr ss uv wx yz ab cd ef gh ij
      ab cd e! gh ij kl mn op qr so uv wx yz ab cd ef gh ij
      ... das z.B. 8. und 29 Zeichen in jeder Zeile haben,
      als eine "spaltenweise Extraktion"?

      Im obigen Beispiel wäre das:
       h    w
      a    i
      l    e
      l    _
      o    g
      _    e
      h    h
      a    t
      r    s
      r    _
      y    s
      !    o
      Liege ich richtig?
      Was genau hast Du vor?

      Grüße

      CMБ

      • Antwort von nach 5 Stunden 0 hilfreich
        Re^3: ASCII File auslesen und gewisse Zeichen sich

        Das hab ich vor:

        Aus der Messmaschine kommen solche Daten


        1 PUNKT Z -504.4743

        2 KREIS I X 632.8736
        Y -857.4795
        D 12.5861
        4P S/MIN/MAX 0.0405 (4) -0.0261 (2) 0.0197

        3 KREIS I X 633.9996
        Y -907.7646
        D 21.1681
        4P S/MIN/MAX 0.0029 (2) -0.0014 (3) 0.0021

        4 PUNKT X 502.8781

        5 PUNKT Z -504.4802
        


        Da nicht alle Werte wichtig sind, benötige ich z.B. nur den
        Kreisdurchmesser von D 12.5861 (mm)

        Diesen Wert möchte ich (gemeinsam mit anderen) in ein txt File
        schreiben.

        Das ist der Plan.. für die Ausführung brauch ich euch :-)

        LG Harry1984

        • Antwort von nach 5 Stunden 0 hilfreich
          Re^4: ASCII File auslesen und gewisse Zeichen sich

          Hallo nochmal. Diesen Wert möchte ich (gemeinsam mit anderen) in ein txt File
          schreiben.

          Das ist der Plan.. für die Ausführung brauch ich euch :-)
          Aber welche Mittel darf man dafür verwenden ?
          Wenn die Datei im csv-Format wäre und in eine Datenbank eingespielt werden könnte, wäre die Sache mit SQL in ein paar Minuten erledigt. Bei Perl z.B. müsste man Sequenzen mit D, dem . und Zahlen von 1 bis 9 auslesen.

          mfg M.L.

          • Antwort von nach 5 Stunden 0 hilfreich
            Re^5: ASCII File auslesen und gewisse Zeichen sich

            Was ist mit diesem TCL ? Könnts damit funktionieren?

            • Antwort von nach 6 Stunden 0 hilfreich
              Re^6: ASCII File auslesen und gewisse Zeichen sich

              Hallo Was ist mit diesem TCL ? Könnts damit funktionieren?
              TCL ist zu kompliziert bei Stringverarbeitung (für mich).
              In Perl ist alles was Du brauchst, folgendes:
              ==> exnum.pl

               my ($record, $prefix, $head, $id) = (shift, shift, 0);
              while(<>) {
              $head = 0 unless /\w+/;
              ($id,  $head) = split if( /\w+/ and !$head);
              if($head and $head =~ /$record/) {
              my ($key, $value) = split if /^$prefix\s/;
              print "$head $id $key $value\n" if defined $value;
              }
              }
              Das kann man, wenn Deine angegebenen Daten in
              "daten.txt" stehen - aufrufen mit:
               C:\daten> perl exnum.pl KREIS D daten.txt
              welches bei Deinem letzten Datensatz
              folgende Ausgabe bringt:
                KREIS 2 D 12.5861
              KREIS 3 D 21.1681
              (Ausgabe ist anpassbar.)

              Perl findest Du hier:

              http://downloads.activestate.com/ActivePerl/Windows/...

              wenn es installiert wurde, reicht es, das obige
              Programm in eine entsprechende Datei zu schreiben
              und diese entweder direkt (s.o.) oder per BATCH
              aufzurufen.

              Grüße

              CMБ



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!