Werner: Ergänzung einer Datei mittels Werten aus einer anderen

Hallo,
ich habe eine Datei der Art

a1,b1,c1,xx,d1
a2,b2,c2,xx,d2
a3,b3,c3,xx,d3
   ...
am,bm,cm,xx,dm

und eine zweite mit den zu c1,c2,.... gehörigen Werten
c1,Wert1
c2,Wert2
   ...
cn,Wertn

n >> m.
Ich möchte nun die xx jeweils ersetzen durch den zu ci gehörigen Wert.
Gibt es hierzu Utilities?
Ich habe leider keine Ahnung von der Programmierung, um so etwas selbst zu realisieren.

  1. Mahlzeit Werner,

    bei den beiden Dateien handelt es sich um klassische Komma-(oder anderes Trennzeichen)-separierte Dateien (CSV, TSV)?

    Dann hast Du im Prinzip eine tabellarische Struktur und kannst diese Daten in ein beliebiges Datenbanksystem importieren - denn ein solches würde Dir relativ problemlos genau die Funktionalität bieten, die Du brauchst.

    ich habe eine Datei der Art

    a1,b1,c1,xx,d1
    a2,b2,c2,xx,d2
    a3,b3,c3,xx,d3
       ...
    am,bm,cm,xx,dm

    ... würde z.B. zu einer Tabelle1:

    SpalteA | SpalteB | SpalteC | SpalteWert | SpalteD
    --------+---------+---------+------------+--------
     a1     | b1      |c1       | xx         | d1
     a2     | b2      |c2       | xx         | d2
     a3     | b3      |c3       | xx         | d3

    und eine zweite mit den zu c1,c2,.... gehörigen Werten
    c1,Wert1
    c2,Wert2
       ...
    cn,Wertn

    ... würde z.B. zu einer Tabelle2:

    SpalteC | SpalteWert
    ---------+------------
     c1      | Wert1
     c2      | Wert2

    Ich möchte nun die xx jeweils ersetzen durch den zu ci gehörigen Wert.

    ... könnte man sehr einfach z.B. durch eine entsprechende Abfrage hinbekommen:

    UPDATE Tabelle1 t1  
       SET t1.SpalteWert = (SELECT t2.SpalteWert FROM Tabelle2 t2 WHERE t2.SpalteC = t1.SpalteC)
    

    (ggf. auch ähnlich oder besser - das kommt auf das verwendete DBMS an)

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi,

      bei den beiden Dateien handelt es sich um klassische Komma-(oder anderes Trennzeichen)-separierte Dateien (CSV, TSV)?

      Ja.
      Aber ein Datenbanksystem habe ich nicht zur Verfügung.
      Gruß
      Werner

      1. Mahlzeit Werner,

        Aber ein Datenbanksystem habe ich nicht zur Verfügung.

        Nicht mal Access, OpenOffice.org Base oder so etwas wie SQLite?

        Ansonsten musst Du halt genau das, was ein Datenbanksystem Dir bietet (nämlich in Datenmengen anhand verschiedener Kriterien Daten auszulesen, miteinander zu verknüpfen bzw. zu manipulieren), selbst nachbauen ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hu,

          Nicht mal Access, OpenOffice.org Base oder so etwas wie SQLite?

          Habe jetzt OpenOffice.org Base installiert und
           - in einem Ordner mydb eine neue Datenbank mydb.odb angelegt
           - wie beschrieben meine beiden Text-Dateien mit OpenOffice.org Calc in
             Tabellen umgewandelt und im obigen Ordner mydb alt t1.dbf bzw. t2.dbf
             gespeichert
          Wenn ich jetzt in der Datenbank eine Abfrage erzeugen will, werden in dem Fenster, in dem ich die Tabelle(n) auswählen soll, die beiden Tabellen nicht angezeigt.
          Was ist da noch falsch gelaufen?
          Gruß
          Werner

  2. In diesem Fall geht das auch mit einer einfachen Batchdatei:

    @ECHO OFF

    TYPE NUL > Output.txt
    FOR /F "tokens=1,2,3,4,5 delims=, " %%I IN (input_m.txt) DO call :loop %%I %%J %%K %%L %%M
    GOTO ende

    :loop
    FOR /F "tokens=2 delims=, " %%N IN ('TYPE input_n.txt ^| FIND "%3"') DO ECHO %1,%2,%3,%%N,%5 >> Output.txt
    GOTO :eof

    :ende