Discussion:
txt Dateien splitten
(zu alt für eine Antwort)
Joerg Bussmann
2004-10-06 18:07:01 UTC
Permalink
Hallo Leute,

bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Hat jemand eine Idee? Wo könnt ich sonst fragen?

Ciao
Joerg
--
Freizeit
Wenn Du etwas für die Firma zu Hause (der Ort, der in Deinem
Personalausweis steht. Genau, dort, wo mal wieder dringend abgewaschen
werden müsste) tust. (Florian Kuehnert)
Heiko Nocon
2004-10-06 18:49:04 UTC
Permalink
Post by Joerg Bussmann
bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Klar. Jeder Mensch, der auch nur die Anfangsgründe des Programmierens
beherrscht, schreibt dir ein entsprechendes Programm als
Quick&Dirty-Version (aber immerhin schon funktionsfähig) in einer
Viertelstunde.
Post by Joerg Bussmann
Wo könnt ich sonst fragen?
Gelbe Seiten->Software

Oder selber programmieren lernen.
Joerg Bussmann
2004-10-06 20:16:08 UTC
Permalink
Am 06.10.2004; 20:49:04 schrieb Heiko Nocon
Post by Heiko Nocon
Klar. Jeder Mensch, der auch nur die Anfangsgründe des
Programmierens beherrscht, schreibt dir ein entsprechendes
Programm als Quick&Dirty-Version (aber immerhin schon
funktionsfähig) in einer Viertelstunde.
Tja, ich kann es leider nicht. Von Programmieren habe ich leider
keinen blassen Schimmer!
Post by Heiko Nocon
Post by Joerg Bussmann
Wo könnt ich sonst fragen?
Gelbe Seiten->>Software

Lol, Lösungen die das können für teures Geld finde ich genug, das ist
nicht ganz was ich suche.
Post by Heiko Nocon
Oder selber programmieren lernen.
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!

Ciao
Joerg
--
Erfahrungen sind Maßarbeit. Sie passen nur dem, der sie macht. (Carlo
Levi, italien. Arzt u. Schriftsteller)
Alan Tiedemann
2004-10-06 20:56:13 UTC
Permalink
Post by Joerg Bussmann
Am 06.10.2004; 20:49:04 schrieb Heiko Nocon
Post by Heiko Nocon
Oder selber programmieren lernen.
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!
Java oder Perl sind kostenlos und sollten für Deinen Zweck gut geeignet
sein.

Gruß,
Alan
--
Bitte nur in die Newsgroup antworten! Re:-Mails rufe ich nur selten ab.
http://www.schwinde.de/webdesign/ ~ http://www.schwinde.de/cdr-info/
Mail: at__0815<at>hotmail<punkt>com ~ news-2003-10<at>schwinde<punkt>de
Peter Niessen
2004-10-06 21:21:43 UTC
Permalink
Post by Alan Tiedemann
Post by Joerg Bussmann
Am 06.10.2004; 20:49:04 schrieb Heiko Nocon
Post by Heiko Nocon
Oder selber programmieren lernen.
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!
Java oder Perl sind kostenlos und sollten für Deinen Zweck gut geeignet
sein.
Besser noch LISP für Quick!
Sind gerade 10 Zeilen und einen Compiler oder so brauchts nicht.
Geht direkt im Editor und gut ist.

Mit freundlichen Grüßen
Peter Nießen
Joerg Bussmann
2004-10-06 22:09:00 UTC
Permalink
Am 06.10.2004; 23:21:43 schrieb Peter Niessen
Post by Peter Niessen
Post by Alan Tiedemann
Post by Joerg Bussmann
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!
Java oder Perl sind kostenlos und sollten für Deinen Zweck gut
geeignet sein.
Besser noch LISP für Quick!
Sind gerade 10 Zeilen und einen Compiler oder so brauchts nicht.
Geht direkt im Editor und gut ist.
Gibt es da irgendwelche Infos, möglichst auch auf Deutsch! "LISP für
Quick" findet nicht mal Google. Zu LISP selber finde ich jede Menge,
aber wo anfangen, und in welcher NG führt man das Thema am besten
fort?

Ciao
Joerg
--
Jedem kann es mal passieren, daß er Unsinn redet, schlimm wird es
erst, wenn er es feierlich tut. (Michel de Montaigne, fr.
Schriftsteller u. Philosoph)
Peter Niessen
2004-10-06 22:44:52 UTC
Permalink
Post by Joerg Bussmann
Am 06.10.2004; 23:21:43 schrieb Peter Niessen
Post by Peter Niessen
Post by Alan Tiedemann
Post by Joerg Bussmann
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!
Java oder Perl sind kostenlos und sollten für Deinen Zweck gut
geeignet sein.
Besser noch LISP für Quick!
Sind gerade 10 Zeilen und einen Compiler oder so brauchts nicht.
Geht direkt im Editor und gut ist.
Gibt es da irgendwelche Infos, möglichst auch auf Deutsch!
Deutsch? Na vergiss das mal ganz schnell!
Ok es gibt ein paar Bücher zwecks nachlesen auf Deutsch, oder sowas
sauteures wie ACAD welches in LISP progammiert wird, da gibt es deutsche
Handbücher.
Aber ein wenig Erklärung:
Eigentlich ist für LISP so ein Problem unter aller Würde :-))
LISP ist eine 3G Sprache die ihr können erst bei richtig schwierigen Sachen
ausspielt. Zb.: KI
Das geht soweit das Lisp seinen Programmcode während der Laufzeit ändern
kann! Ist aber genauso schnell wie C++ etc.
Post by Joerg Bussmann
"LISP für Quick" findet nicht mal Google. Zu LISP selber finde ich jede
Menge, aber wo anfangen, und in welcher NG führt man das Thema am besten
fort?
Unter Windows oder Mac kann man beispielsweise mit der kostenlosen
Personal-Version von Lispworks arbeiten:
http://www.lispworks.com/
( Loading Image... )

Unter Linux läuft beispielsweise auch cmucl:
http://www.cons.org/cmucl/

Informationen zu Lisp (zwei Bücher):
http://www.gigamonkeys.com/book/
http://www.psg.com/~dlamkins/sl/contents.html

(kostenlos im Internet lesbar)

Mit freundlichen Grüßen
Peter Nießen

Und Warnung vor dem Feind!
Umdenken ist angesagt! Aber wenn man es begeift:
Obercool!
Jörg Ott
2004-10-07 07:27:06 UTC
Permalink
Post by Joerg Bussmann
Am 06.10.2004; 23:21:43 schrieb Peter Niessen
Post by Peter Niessen
Post by Alan Tiedemann
Post by Joerg Bussmann
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen,
aber womit programmiert man sowas? Ich will ja nicht gleich ein
paar Hundert Euro für eine Entwicklungsumgebung auf den Tisch
legen!
Java oder Perl sind kostenlos und sollten für Deinen Zweck gut
geeignet sein.
Besser noch LISP für Quick!
Sind gerade 10 Zeilen und einen Compiler oder so brauchts nicht.
Geht direkt im Editor und gut ist.
Gibt es da irgendwelche Infos, möglichst auch auf Deutsch! "LISP für
Quick" findet nicht mal Google. Zu LISP selber finde ich jede Menge,
aber wo anfangen, und in welcher NG führt man das Thema am besten
fort?
Bevor du wirklich anfängst, irgendwelche Räder neu zu erfinden, schau
dir doch mal split und csplit aus den GNU TextUtils an. Die gibts auch
für Windows.

http://gnuwin32.sourceforge.net/packages/textutils.htm
http://unxutils.sourceforge.net/
--
Gruß Jörg
Wolfgang Gerber
2004-10-07 09:14:00 UTC
Permalink
Post by Joerg Bussmann
Post by Heiko Nocon
Oder selber programmieren lernen.
Nur dafür? Wäre vielleicht mit Kanonen auf Spatzen zu schießen. Gut
wäre vielleicht ein Anreiz um mit dem Programmieren zu beginnen, aber
womit programmiert man sowas? Ich will ja nicht gleich ein paar
Hundert Euro für eine Entwicklungsumgebung auf den Tisch legen!
Selbst das uralte GW-Basic von DOS ist dafür geeigenet. Gerade das!
Einfacher geht es nicht. Das nötige Programm gibt nicht mal einen
Bildschorm voll Code.

Habe gerade mal in meinem Archiv was gefunden. Stammt von 1990 für
Powerbasic! Diente zum splitten übergrosser Plotdateien für den
Diskettentransfer. Ohne Gewähr. Und nur als Gerüst bzw. Idee. Das
kannst du auf 1/3 reduzieren. Den ganzen Abfrageteil kan man stark
vereinfachen oder gar weglassen und die Filenamen fest codieren. Dann
bleibt noch ca. 1 Bildschirm voll Code übrig. Dazu muss dann nur noch
die Abrage nach der richtigen Zeile an der du trennen willst.

Und um wieder zur Gruppe zurückzufinden. Du kannst den Filenamen auch
aus der Kommandozeile lesen. (Commandstring) Und dann unter Windows
ein Icon anlegen und die zu splittende Datei auf das Icon ziehen.


print "filesplitter - zerlegt uebergrosse Textdateien"
print "Die einzelnen Dateien sind dann Filename.1, Filename.2,
Filename.n"
print "und muessen von Hand passend umbenannt werden.
print ""

repeat:

print "Laufwerk und Quellpfad eingeben (Bsp. c:\plot\)"
input qpfad$ : if right$(qpfad$,1) <> "\" then qpfad$ = qpfad$ + "\"
print "Name der Quelldatei (ohne Extension) eingeben:
input quell$
print "Extension der Quelldatei eingeben"
input ext$

print "Laufwerk und Zielpfad eingeben (Bsp. c:\plot\)"
input zpfad$ : if right$(zpfad$,1) <> "\" then zpfad$ = zpfad$ + "\"
print "Name der Zieldateien (ohne Extension) eingeben:
input ziel$

print
print "Eingabe fertig

infile$ = qpfad$ + quell$ + "." + ext$
outfile$ = zpfad$ + ziel$ + "."

print "Zerlegt wird " + infile$
print ""
print "Erzeugt wird " + outfile$ + "n (= 1 bis ...)"

input "Ok j/n ?";dummy$
if ucase$(dummy$) <> "J" then goto repeat

on error goto nofile
open "I",1,infile$
on error goto 0

input "Anzahl maximaler Bytes pro Ausgangsfile";max

cls
filenum = 1
laenge = 0
zeile = 0
zcount = 0

h$ = outfile$ + "1"

open "O",2,h$

while not eof(1)

'line
input #1,ip$
laenge = laenge + len(ip$) + 2
incr zeile
incr zcount

if laenge > max then
locate filenum,40: print "Close File ";filenum;zeile
close #2
incr filenum
laenge = len(ip$) + 2
zeile = 1
h$ = outfile$ + mid$(str$(filenum),2)
open "O",2,h$
locate filenum,40: print "Open File ";filenum;zeile
end if

locate filenum,1: print filenum,zeile,laenge;
print #2,ip$

wend

close
stop


nofile:
print "Eingangsfile wurde nicht angegeben oder nicht gefunden"
resume ende

ende:

close
print "Ende"
stop

Gruss Wolfgang
--
No reply to "From"! - Keine Antworten an das "From"
Keine privaten Mails! Ich lese die NGs, in denen ich schreibe.
Und wenn es doch sein muss, dann muss das Subjekt das Wort NGANTWORT enthalten.
Oliver Vecernik
2004-10-06 23:00:42 UTC
Permalink
Hallo Jörg!
Post by Joerg Bussmann
bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Hat jemand eine Idee? Wo könnt ich sonst fragen?
f'up & xpost: de.comp.lang.perl.misc


Viele Grüße
Oliver
Ingo Menger
2004-10-07 11:19:21 UTC
Permalink
Post by Joerg Bussmann
Hallo Leute,
bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Hat jemand eine Idee? Wo könnt ich sonst fragen?
Ja. Es gibt ein Unix-Kommando split, was diese Aufgabe erfüllen kann.
Da Du in Deinem Fall weißt, wie lang Deine Zeilen sind, kannst Du
leicht ausrechnen, wieviele Zeilen pro Datei Du haben möchtest.
Joerg Bussmann
2004-10-07 17:36:44 UTC
Permalink
Am 07.10.2004; 13:19:21 schrieb Ingo Menger
Post by Ingo Menger
Ja. Es gibt ein Unix-Kommando split, was diese Aufgabe erfüllen
kann. Da Du in Deinem Fall weißt, wie lang Deine Zeilen sind,
kannst Du leicht ausrechnen, wieviele Zeilen pro Datei Du haben
möchtest.
Ich habe nur kein unixoides System zur Verfügung! :-/
Gibt es einen solchen Befehl oder ähnliches auch in der Windows Welt?

Ciao
Joerg
--
nix sig
Sebastian Bessler
2004-10-07 17:51:24 UTC
Permalink
Post by Joerg Bussmann
Ich habe nur kein unixoides System zur Verfügung! :-/
Gibt es einen solchen Befehl oder ähnliches auch in der Windows Welt?
Schau dich mal nach Cygwin um das ist eine Sammlung von Programmen aus
der Linux/Unix Welt die unter Windows laufen. Da gibt es fast alles bis
hin zur kompletten X-Windows Oberfläche mit KDE oder Gnome.
Ingo Menger
2004-10-08 07:26:17 UTC
Permalink
Post by Joerg Bussmann
Am 07.10.2004; 13:19:21 schrieb Ingo Menger
Post by Ingo Menger
Ja. Es gibt ein Unix-Kommando split, was diese Aufgabe erfüllen
kann. Da Du in Deinem Fall weißt, wie lang Deine Zeilen sind,
kannst Du leicht ausrechnen, wieviele Zeilen pro Datei Du haben
möchtest.
Ich habe nur kein unixoides System zur Verfügung! :-/
Gibt es einen solchen Befehl oder ähnliches auch in der Windows Welt?
Stichworte GNU, Cygwin oder die SFU-Software von Microsoft selber.
Patrick Schueller
2004-10-07 21:40:19 UTC
Permalink
Post by Joerg Bussmann
Hallo Leute,
bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Hat jemand eine Idee? Wo könnt ich sonst fragen?
Ich bin mir nicht hundertprozentig sicher, ob das realisierbar ist, aber
im Prinzip müsste man das auch mit findiger Batchprogrammierung
hinkriegen (Stichwort "FOR /F"). Für einen Überblick -> "FOR /?", siehe
insbesondere das Beispiel zu "FOR /F". Man müsste nur noch einen
Mechanismus hinkriegen, der die Zeilen passend in numerierte Dateien
schreibt.

Gruß, Patrick
--
"Ihre Entdeckung ist höchst neu und originell, Herr Kollege,
seit 30 Jahren hat sie niemand mehr gemacht."
(George Bernard Shaw: 'Arzt am Scheideweg')
http://www.patrick-schueller.de
Ansgar Strickerschmidt
2004-10-08 09:08:40 UTC
Permalink
Am Thu, 07 Oct 2004 23:40:19 +0200 schrieb Patrick Schueller
Post by Joerg Bussmann
Hallo Leute,
bin hier vielleicht nicht ganz richtig, aber ich suche eine
Möglichkeit große TXT Dateien in kleinere Pakete von ca. 400 KB zu
splitten. Die Dateien enthalten Datensätze für ein SAp System. Jede
zweite Zeile enthält ein EDI_DC40 am Anfang. es müßte doch irgendwie
möglich sein, die Datei in gleichmäßige Pakete zu teilen und immer vor
dem einem EDI.... aufzuhören bzw. eine neue Datei zu beginnen und die
entstehenden Dateien laufend durchzunummerieren.
Hat jemand eine Idee? Wo könnt ich sonst fragen?
Schau Dir mal den Texteditor PSPad (www.pspad.com, Freeware) an.
Der ist makrofähig, und damit könntest Du das hinkriegen, was Du willst.

Ansgar
--
Mails an die angegebene Adresse erreichen mich - oder auch nicht! Gueltige
Adresse gibt's bei Bedarf!
Mail to the given e-mail address may or may not reach me! Valid response
address will be given when required!
Lesen Sie weiter auf narkive:
Loading...