Textdatei in Textarea einfuegen

  • Guten Abend,

    Ich habe ein paar Probleme mit dem zerfluegeln einer textdatei. Ich bekomme jeden Tag mehrere dieser Dateien meines Haendlers diese sind in ".ugl" ausgefuehrt. Mann kann die Dateien auch in Klartext per editor oeffnen.
    Nun sieht eine Datei so aus
    z.b.

    Code
    RGD549613401 LS20180913EUR000000000000000000000000000000000000000000000000000000        0000000000000000                00000000000                                                                     
    KOP109398              AB                                                                 549613401              EUR04.00Herr Kreutz                             20180913                               
    POA000000000100000000011514204        00000001000CIMC Universal Kerbzange          101904                                        0000000290000000000290000000000005496134;1          H St 2L            
    END

    oder so

    Code
    RGD549623901 LS20180913EUR000000000000000000000000000000000000000000000000000000        0000000000000000                00000000000                                                                     
    KOP109398              AB                                                                 549623901              EUR04.00Herr Kreutz                             20180913                               
    POA000000000100000000019033977        00000001000VIVA XXL TV Wandhalterung, Full BFMO6560                                        0000000537500000000537500000000005496239;1          H St 2L            
    END


    meine Quellcode den ich zurzeit als "test" geschrieben habe sieht wie folgt aus.



    Ich wuerde wenn es natuerlich irgendwie machbar waere der Textarea sagen, dass ich die ersten 1-12 zeichen in die erste Area die naechsten 13-24 Zeichen in die zweite area usw.. einfuege.


    Es gibt auch extra Programme dafuer jedoch leider nicht auf meine beduerfnisse abgestimmt. Einen Kostenfreine UGL viewer gibt es auch falls es einer von euch brauchte von KWP.

    Waere Super wenn Ihr mir weiter helfen koennt

    5 Mal editiert, zuletzt von Arne Drews (27. September 2018 um 12:05) aus folgendem Grund: MOD: PHP-Tags eingefügt

  • Was ist denn mit den ganzen Leerzeichen in der Datei? müssen die weggetrimmt werden? Und wieso eine Textarea, bei 12 Zeichen reicht doch auch ein einfaches Textfeld. Und was soll dann passieren?

  • vom Grundprinzip würde ich gerne zb. LS20180913 in zwei eigene felder eintragen ein feld LS das andere 2018 09 13 oder auch zusammen ohne leerzeichen das wäre egal.
    oder

    0000000537500000000537500000000005496239;1

    53,75 Euro filtern, ich habe mittlerweile herausbekommen das der Preis/ Datum/ Artikelbeschreibung usw
    immer in einer bestimmten Position ist. Daher wäre es für mich einfach zu bestimmten zeichne zu filtern.

    ich wäre auch mit einem textfeld zufreiden.

    das Ganze würde ich wenn das filtern passt in meine SQL Datenbank speichern um dort diese zu sortieren, suchen usw.. (wobei das nicht das Problem für mich ist)

    Einmal editiert, zuletzt von jimz147 (27. September 2018 um 07:38)

  • Wenn die Textpositionen immer gleich sind, dann würde ich die komplette Datei in einen String ohne Zeilenumbruch umwandeln und alle Leerzeichen entfernen. Danach kann man dann mit substr sich die einzelnen Blöcke aus dem String herausfiltern.

  • Beispiel

  • Ich hab das ganze mal "kurz" getestet funktioniert offensichtlich. Werde es heute Abend mal ausprobieren. Vielen Herzlichen Dank für die Bemühungen.

    würde das ganze auch funktionieren ohne die Leerzeichen zu entfernen? denn das Problem ist das die Leerzeichen Platzhalter sind. Somit werden die Leerzeichen zb. bei angebenen Kommissionen durch Zeichen ersetzt.

    - - - Aktualisiert - - -

    So Hab ein wenig Probiert, und so wollte ich das ganze haben.

    PHP
    <html><?php
      $file = "./test.txt";
      $document = file_get_contents($file);
    	$document1 = substr($document,  0,150);
     ?>
    </br>
    <textarea rows="10" cols="90" ><?php echo "$document1" ?></textarea > 
    </html>

    So heute Abend werde ich mich damit nochmal intensiv beschäftigen.
    Vielen Dank nochmals

    Einmal editiert, zuletzt von jimz147 (27. September 2018 um 08:34)

  • Guten Abend an Alle,

    Ich habe ein weiteres Problem. Wie schon erwähnt bekomme ich mehrere ca. 10-15 solcher Dokumente "B0180914.018" (immer mit anderem Name) nun stellt sich mir die Frage, wie ich es am schnellsten ohne immer im Quelltext den Namen zu ändern die Dokumente in mein Code einspielen kann.

    So Simpel sieht das gerade aus.

    Code
    $file = "./lieferscheine/B0180914.018";
      $document = file_get_contents($file);

    Die Daten werden mir einmal per Mail zugesendet und ich habe als Zusatz einen FTP Server Zugang. Mir wäre es lieber eine Lösung zu finden womit man sich mit einem Fenster die Datei auswählen kann und den Inhalt auf die "test.php" weitergibt.

    Ich werde vorr. erst morgen Abend erst wieder hier sein können.

    Allen Schönen Abend noch

    Gruß jimz147

    3 Mal editiert, zuletzt von jimz147 (30. September 2018 um 22:38)

  • kannst du mir hierzu wenn es nicht zuviel verlangt ist ein Beispiel machen?

    mit

    Code
    $dir = './';
    
    
      foreach(glob($dir.'lieferscheine/*.*') as $file) {
          print $file . "\n";
      }

    bekomme ich zumindest diese Ausgabe:

    Code
    [COLOR=#000000][FONT=-webkit-standard]./lieferscheine/B0180913.001 ./lieferscheine/B0180913.002 ./lieferscheine/B0180913.003 ./lieferscheine/B0180913.004 ./lieferscheine/B0180913.005 ./lieferscheine/B0180913.006 ./lieferscheine/B0180913.007 ./lieferscheine/B0180913.008 ./lieferscheine/B0180913.009 ./lieferscheine/B0180913.010 ./lieferscheine/B0180913.011 ./lieferscheine/B0180913.012 ./lieferscheine/B0180913.013 ./lieferscheine/B0180913.014 ./lieferscheine/B0180913.015 ./lieferscheine/B0180914.016 ./lieferscheine/B0180914.017 ./lieferscheine/B0180914.018 ./lieferscheine/B0180914.019 ./lieferscheine/B0180914.020 ./lieferscheine/B0180914.021 ./lieferscheine/B0180914.022 ./lieferscheine/B0180914.023 ./lieferscheine/B0180914.024 ./lieferscheine/B0180914.025 ./lieferscheine/B0180914.026 ./lieferscheine/B0180914.027 ./lieferscheine/B0180914.028 ./lieferscheine/B0180914.029 ./lieferscheine/B0180914.030 ./lieferscheine/B0180914.031 ./lieferscheine/B0180914.032 ./lieferscheine/B0180914.033 ./lieferscheine/B0180914.034 ./lieferscheine/B0180914.035 ./lieferscheine/B0180917.036 ./lieferscheine/B0180917.037 ./lieferscheine/B0180917.038 ./lieferscheine/B0180917.039 ./lieferscheine/B0180917.040 ./lieferscheine/B0180917.041 ./lieferscheine/B0180917.042 ./lieferscheine/B0180917.043 ./lieferscheine/B0180917.044 ./lieferscheine/B0180918.045 ./lieferscheine/B0180918.046 ./lieferscheine/B0180918.047 ./lieferscheine/B0180918.048 ./lieferscheine/B0180918.049 ./lieferscheine/B0180919.050 ./lieferscheine/B0180919.051 ./lieferscheine/B0180919.052 ./lieferscheine/B0180919.053 ./lieferscheine/B0180919.054 ./lieferscheine/B0180919.055 ./lieferscheine/B0180920.056 ./lieferscheine/B0180920.057 ./lieferscheine/B0180920.058 ./lieferscheine/B0180920.059 ./lieferscheine/B0180920.060 ./lieferscheine/B0180920.061 ./lieferscheine/B0180920.062 ./lieferscheine/B0180920.063 ./lieferscheine/B0180920.064 ./lieferscheine/B0180920.065 ./lieferscheine/B0180920.066 ./lieferscheine/B0180920.067 ./lieferscheine/B0180920.068 ./lieferscheine/B0180920.069 ./lieferscheine/B0180920.070 ./lieferscheine/B0180920.071 ./lieferscheine/B0180920.072 ./lieferscheine/B0180921.073 ./lieferscheine/B0180921.074 ./lieferscheine/B0180921.075 ./lieferscheine/B0180921.076 ./lieferscheine/B0180921.077 ./lieferscheine/B0180921.078 ./lieferscheine/B0180921.079 ./lieferscheine/B0180921.080 ./lieferscheine/B0180921.081 ./lieferscheine/B0180921.082 ./lieferscheine/B0180921.083 ./lieferscheine/B0180921.084 ./lieferscheine/B0180924.085 ./lieferscheine/B0180924.086 ./lieferscheine/B0180924.087 ./lieferscheine/B0180924.088 ./lieferscheine/B0180924.089 ./lieferscheine/B0180924.090 ./lieferscheine/B0180924.091 ./lieferscheine/B0180924.092 ./lieferscheine/B0180924.093 ./lieferscheine/B0180924.094 ./lieferscheine/B0180924.095 ./lieferscheine/B0180924.096 ./lieferscheine/B0180924.097 ./lieferscheine/B0180924.098 ./lieferscheine/B0180924.099 ./lieferscheine/B0180924.100 ./lieferscheine/B0180924.101 ./lieferscheine/B0180924.102 ./lieferscheine/B0180924.103 ./lieferscheine/B0180924.104 ./lieferscheine/B0180924.105 ./lieferscheine/B0180924.106 ./lieferscheine/B0180924.107 ./lieferscheine/B0180924.108 ./lieferscheine/B0180924.109 ./lieferscheine/B0180924.110 ./lieferscheine/B0180924.111 ./lieferscheine/B0180924.112 ./lieferscheine/B0180924.113 ./lieferscheine/B0180925.114 ./lieferscheine/B0180925.115 ./lieferscheine/B0180925.116 ./lieferscheine/B0180925.117 ./lieferscheine/B0180925.118 ./lieferscheine/B0180925.119 ./lieferscheine/B0180925.120 ./lieferscheine/B0180925.121 ./lieferscheine/B0180925.122 ./lieferscheine/B0180925.123 ./lieferscheine/B0180925.124 ./lieferscheine/B0180925.125 ./lieferscheine/B0180925.126 ./lieferscheine/B0180925.127 ./lieferscheine/B0180925.128 ./lieferscheine/B0180925.129 ./lieferscheine/B0180925.130 ./lieferscheine/B0180925.131 ./lieferscheine/B0180926.132 ./lieferscheine/B0180926.133 ./lieferscheine/B0180926.134 ./lieferscheine/B0180926.135 ./lieferscheine/B0180926.136 ./lieferscheine/B0180926.137 ./lieferscheine/B0180926.138 ./lieferscheine/B0180926.139 ./lieferscheine/B0180926.140 ./lieferscheine/B0180927.141 ./lieferscheine/B0180927.142 ./lieferscheine/B0180927.143 ./lieferscheine/B0180927.144 ./lieferscheine/B0180927.145 ./lieferscheine/B0180927.146 ./lieferscheine/B0180927.147 ./lieferscheine/B0180927.148 ./lieferscheine/B0180927.149 ./lieferscheine/B0180928.150 ./lieferscheine/B0180928.151 ./lieferscheine/B0180928.152 ./lieferscheine/B0180928.153 ./lieferscheine/B0180928.154 ./lieferscheine/B0180928.155 ./lieferscheine/B0180928.156 ./lieferscheine/B0180928.157 ./lieferscheine/B0180928.158 ./lieferscheine/B0180928.159 ./lieferscheine/B0180928.160 ./lieferscheine/B0180928.161 ./lieferscheine/B0180928.162[/FONT][/COLOR]

    wie bekomme ich da eine schleife rein?

  • Hallo, sorry das ich erst jetzt antworten kann. War heute Ganzen Tag unterwegs.

    bei mir Sieht der Code gerade so aus

    PHP
    <?php foreach(glob($dir.'lieferscheine/*.*') as $file)
    $document = file_get_contents($file . "\n");
    $document3 = substr($document,  13,2)?>
    <textarea name= "03"><?php echo "$document3" ?></textarea >
    <form action="test.php" method="post"> <input class="btn btn-primary" type="submit" value="Lieferschein Speichern"/>
    <?php mysql_connect("localhost", "****", "****") or die(mysql_error());mysql_select_db("****") or die(mysql_error());
    
    
    $x03 = $_POST['03'];if ($document13 == "POA"){$eintrag = "INSERT INTO lieferschein(kdnr)VALUES('$x03')"; ?>


    hier nur ein mini ausschnitt meines Codes.

    mit ist klar das $file alle im Ordner befindlichen Dateinamen als schleife beinhaltet, nur ist die frage wie ich alle Dateien in meine textarea bekomme und die submit bestätigen lasse.

    mein "Code" ist so aufgebaut, dass eine Datei eingelesen werden soll und dann gespeichert wird. Danach sollte die nächste Datei eingelesen und gespeichert werden.

    Sorry das ich evtl. für euch selbstverständliche fragen stelle. bei bedarf kann ich auch gerne den ganzen code hier einstellen.


    Gruss Jimz147

    Hab mitlerweile hier das mit eingebaut.

    nun wir die Anzahl der Datei im Ordner gezaeghlt und soviele formulare ausgegeben. Jedoch sitze ich immer noch auf dem Problem mit dem $file fest. z.b. wenn 5 Dateien im Ordner enthalten sind, wird 5 mal das gleiche "form" ausgegeben. Soweit alles Okay. jedoch wird immer die Gleiche Datei ausgewahlt somit sind in allen 5 Formulaten das gleiche.

    7 Mal editiert, zuletzt von jimz147 (1. Oktober 2018 um 22:32)

  • Danke Für die Hilfe ich hab soweit eine Lösung

    Einmal editiert, zuletzt von Arne Drews (3. Oktober 2018 um 13:19) aus folgendem Grund: MOD: Code formatiert

    • Offizieller Beitrag

    Von rekursiv hast Du bisher nichts erwähnt. Dann machen die SPL-Iteratoren Sinn.

    Du solltest aber auch auf den Kontextwechsel achten!
    Ich würde die Ausgabe "sammeln", bspw. so:


    Dann an entsprechender Stelle einfach nur:

    PHP
    echo implode($aTextAreas);