Vorschlag: Textfilesplitting nach x Zeilen

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Jupp
New Member
New Member
Posts: 1
Joined: 2005-05-13, 10:20 UTC

Vorschlag: Textfilesplitting nach x Zeilen

Post by *Jupp »

Hallo!

Beruflich habe ich häufig sehr große Flatfiles (ASCII, ANSI oder Unicode) aus Schnittstellen, die ich zur Weiterverarbeitung in handliche Teile zerlegen muß.

Die normalen Filesplitting-Tools splitten Dateien nach x byte, MB, etc.
und beachten dabei keine "Datensatztrennzeichen". Das Ergebniss ist ein
Splitt irgendwo im Datensatz und daher unbrauchbar.

Daher meine Anfrage: Ist es möglich die Funktion "Dateien aufspalten" um eine Option "Nach x Zeilen" zu erweitern?
evtl. läßt sich der Datensatztrenner ja noch frei definieren?

Besten Dank
User avatar
SanskritFritz
Power Member
Power Member
Posts: 3693
Joined: 2003-07-24, 09:25 UTC
Location: Budapest, Hungary

Post by *SanskritFritz »

Du könntest sowas mit script utilities wie AutoIt3 oder ähnliches ziemlich leicht lösen. Frage ist nur wie lange das dauern würde...
I switched to Linux, bye and thanks for all the fish!
rduke15
Junior Member
Junior Member
Posts: 10
Joined: 2005-05-15, 22:10 UTC

Unix split does it, or a little Perl script

Post by *rduke15 »

If you have any sort of Unix box around, they all have split, which can do what you want. See http://www.wuppy.net.ru/books/Orelly/unix/upt/ch35_09.htm

If not, I'm sure this has been done many times with Perl and other scripting languages, so you should be able to find a script and assign it to a button in TC.
rduke15
Junior Member
Junior Member
Posts: 10
Joined: 2005-05-15, 22:10 UTC

Post by *rduke15 »

PS: Yes, in fact there is a ready-made Perl script doing exactly what you want (and more of course): http://search.cpan.org/~cwest/ppt-0.14/bin/split which is part of the Perl Power Tools project: http://search.cpan.org/~cwest/ppt-0.14/

And in case you are not familiar with Perl, Windows distributions come with pl2bat.bat which turns a .pl script into a regular executable batch file (through a few clever tricks which hide one language from the other).
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Für Split gibt's auch 'nen Windows-Port:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
5.3 split: Split a file into fixed-size pieces

split creates output files containing consecutive sections of input (standard input if none is given or input is `-'). Synopsis:

split [option] [input [prefix]]

By default, split puts 1000 lines of input (or whatever is left over for the last section), into each output file.

The output files' names consist of prefix (`x' by default) followed by a group of characters (`aa', `ab', ... by default), such that concatenating the output files in traditional sorted order by file name produces the original input file. If the output file names are exhausted, split reports an error without deleting the output files that it did create.
`-l lines'
`--lines=lines'
Put lines lines of input into each output file.
Icfu
This account is for sale
Stoebi
Junior Member
Junior Member
Posts: 24
Joined: 2005-04-10, 15:16 UTC

Post by *Stoebi »

Es ist schön, dass es für alles immer eine "externe" Lösung gibt.
Warum kann das aber TC nicht?

Ich schliesse mich den Wunsch des Threaderstellers an und erweitere noch meinen Wunsch.

Nicht nur nach x Zeilen, sondern auch in wievielen Parts überhaupt
"riesige" Files gesplittet werden sollen. Nicht nach fest definierten Vorgaben und nicht nach nach eingebbaren Bytes. Nein Parts. Ich würde mich freuen, wenn TC das alles alleine könnte.

Zum Beispiel:
Ich hab eine 175 MB Datei, und ich möchte das TC es in 8 Teile splittet.
Ohne das ich irgendetwas selbst dazu tun muss.


Gruß Stöbi
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Warum kann das aber TC nicht?
Weil der Wunsch zu speziell ist, ganz einfach. Der TC kann vieles im allgemeinen sehr gut, aber genau dieses im speziellen sehr schlecht oder gar nicht, einfach weil er eine zu große Palette an Funktionen abdecken muß. Ein Entwickler alleine kann unmöglich die Arbeit von 100 anderen leisten, genau das ist der Grund, weshalb spezialisierte externe Programme immer leistungsfähiger sind als die Funktion im TC selbst.

Für Jupps Vorschlag braucht es eine interne Logik, man muß einstellen können, welche Trennzeichen berücksichtigt werden und ähnliches.

Dein Wunsch mit den Teilen ist sicherlich einfacher zu realisieren, da steht ja nur 'ne kleine Rechnung an. Ich kann mich aber nicht daran erinnern, daß schon mal jemand so einen Wunsch geäußert hat und selbst kann ich mir auch nicht vorstellen, wofür man eine solche Funktion braucht, aber das muß ja nichts heißen. ;)

Icfu
This account is for sale
Stoebi
Junior Member
Junior Member
Posts: 24
Joined: 2005-04-10, 15:16 UTC

Post by *Stoebi »

icfu wrote:
Warum kann das aber TC nicht?
Dein Wunsch mit den Teilen ist sicherlich einfacher zu realisieren, da steht ja nur 'ne kleine Rechnung an. Ich kann mich aber nicht daran erinnern, daß schon mal jemand so einen Wunsch geäußert hat und selbst kann ich mir auch nicht vorstellen, wofür man eine solche Funktion braucht, aber das muß ja nichts heißen. ;)

Icfu

Schon vor langer langer Zeit. Ich glaube mich daran erinnern zu können,
als Antwort bekommen zu haben, dass mein Wunsch zu speziell sei bzw.
kein Sinn darin gesehen wird.

Nun, ich finde es für einfacher in angegebenen Parts als nach irgendwelchen bestimmten Disktetten, Zip oder anderen Größen splitten zu wollen. Gut, man kann ja noch die Bytegröße selbst bestimmen, kann man sicher auch irgendwann mal gebrauchen. Aber ein File in x Parts zu splitten wäre schon schön, wenn TC das könnte.


Gruß Stöbi
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Das Unverständnis rührt wohl daher, daß man Dateien üblicherweise splittet, um sie in irgendeiner Form zu transportieren, die Größe der Teile ist daher das entscheidene Kriterium, nicht die Anzahl der Dateien.

Vielleicht erklärst Du einfach mal kurz, wofür man diese Funktion brauchen könnte.

Ich würde mir stattdessen wünschen, daß man die Auswahlliste der Dateigrößen konfigurieren könnte.

Icfu
This account is for sale
Stoebi
Junior Member
Junior Member
Posts: 24
Joined: 2005-04-10, 15:16 UTC

Post by *Stoebi »

icfu wrote:Das Unverständnis rührt wohl daher, daß man Dateien üblicherweise splittet, um sie in irgendeiner Form zu transportieren, die Größe der Teile ist daher das entscheidene Kriterium, nicht die Anzahl der Dateien.

Vielleicht erklärst Du einfach mal kurz, wofür man diese Funktion brauchen könnte.

Ich würde mir stattdessen wünschen, daß man die Auswahlliste der Dateigrößen konfigurieren könnte.

Icfu
Auf verschiedenen FTP Server habe ich max. Filelimitgrößen, warum
auch immer. Ab 100 MB aufwärts muss ich dann schon mal in 3, 5,
7 bis max. 30 Parts splitten. Der größte Teil sind FTP Server ohne
Resume. Ist dann ärgerlich, zum Beispiel ein 200 MB File jedes Mal
neu anzufangen. Also wird gesplittet.

Auch E-Mail Anhänge verschicke ich nicht in Diskettengröße etc..


Gruß Stöbi
Post Reply