Am 26.06.2013 18:16, schrieb David Haller:
Hallo,
Am Wed, 26 Jun 2013, Sebastian Reinhardt schrieb: [..]
Das Thema hat sich aber exakt 13:56Uhr erledig. Da bekam ich eine E-Mail, dass am 01.07. eine neu Preisliste rauskommt (wie erwartet). Dabei wird gleich noch ein neues Dateiformat eingeführt. Das ist vom Prinzip her eine reine Textdatei mit festen Spaltenbreiten. Die Datei hat gleich mal 77MB und es wird eh noch ein komplett neues Rabattsystem eingführt. Die kannst du dann mit DBD::AnyData als Backend mit DBI verwursten. Such nach 'fixed' in 'man DBD::AnyData'.
HTH, -dnh
Wow, das sieht gut aus. Merke ich mir. Derzeit (seit gestern Nachmittag/ Abend) habe ich das aber anders realisiert, indem ich das zeilenweise auslese und die Zeile mit "subtr" zerlege. Ich bekomme ja eine Beschreibung der Datei (z.B. von 1-10-Artikelnummer, 11-40 Bezeichnung, 41-50-Listenpreis usw.). Das speichere ich mir für jeden Lieferanten in eine Datei und lese es dann in ein Hash ein (natürlich in der Form (Array in Hash!): "Artikelnummer => [Start][Länge]"). Da die das alle mit 1. Zeichen in Zeile = 1 angeben, steht unten im Codeausschnitt nat. Position-1 ! Ich schreibe das auch so universell, wie möglich, damit ich für verschiedene Listen nur die eine Routine brauche. Ich mache jetzt übrigens das hier: ------------------------------------------------ while( my $line = <$inputfile>) { .......ein paar Tests, ob die Spalte auch benötigt wird und Auswahl der Tabellenkopfbezeichnung (tmp_head, die auch in der Definitionsdatei verwendet wird)....... $output_hash{$tmp_head} = substr($line,$head_def_hash{$tmp_head}[0]-1,$head_def_hash{$tmp_head}[1]-1); ..........Verarbeitung der gelesenen Werte (z.B. mit Rabatt unseren Einkaufspreis errechnen usw.)......... } ------------------------------------------------ Zugegeben, mit "SELECT.."-Anwewisungen sieht das "professioneller" aus, aber dann brauche ich ja eigentlich wieder eine Hilfsvariable, da ich dem Modul ja sagen muss, nach welchem Kriterium (z.B. spezifische Artikelnummer) die Zeile selektiert wird. Mal sehen, vielleicht schreibe ich das noch mal um.......Danke für den Tipp. -- Mit freundlichen Grüßen Sebastian Reinhardt -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org