hiob Geschrieben 14. November 2001 Teilen Geschrieben 14. November 2001 habe folgende Aufgabe erhalten und stehe am Schlauch: eine .txt ist nach etwas diesem Muster strukturiert: 163000080801 06THOMAS 09MUSTERMANN 00 00 00 00 00 00 00 00 00 00 00 00 0097854 12MUSTERSTRASSE 12 00 20GASTHOF MUSTERMANN 00 00 |163000080803 06TALIA 07TESTERIN 00 00 00 00 00 00 00 00 00 00 00 00 00485210TESTSTRASSE 10TESTDORF 1A 00 18GÄSTEHAUS TESTLAND 00 00 Diese Daten (sind über 100.000) sollen in eine Access-Datenbank mit den Feldern NR., Vorname, Name, Strasse, ORt, etc...eingestellt werden. Der neue Datensatz beginnt immer mit der 163000000... Nummer, die Zahlen vor den Namen stellen nur die Länge des NAmens dar und sollen auch verschwinden, ebenso die "00" ZAhlen Kann das funktionieren? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HELLmut Geschrieben 15. November 2001 Teilen Geschrieben 15. November 2001 hi hiob, also das kann schon funktionieren - habe ähnliche aufgabe schon realisiert. du brauchst halt eine funktion die die datei öffnet und zeilenweise und dann von links nach rechts abgeht, dann einen recrodset in den du die daten an entsprechende position speicherst (zB. in die spalte vorname). dann must du noch prüfen ob die zeile mit 163000000... beginnt, wenn ja movenext / bzw. update und addnew im recordset. is etwas kompliziert aber man kann sich durchbeißen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tiana Geschrieben 15. November 2001 Teilen Geschrieben 15. November 2001 Hi, also, ich habe sowas mal in VB gemacht. Dort kannst du mit einem TextStream Objekt den Text Zeilenweise einlesen und mit der MID-Funktion auseinanderschneiden. Das setzt natürlich voraus, das alle zu importierenden Dateien gleich aufgebaut sind. Wenn Du mehr Infos zu dieser Methode brauchst, z.B. Codebeispiele, mail mich an. Gruß, Tia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HELLmut Geschrieben 15. November 2001 Teilen Geschrieben 15. November 2001 genau das hab ich gemeint.... wenn die abschnitte also fürn namen z.B. verschieden lang sind kannst du das mid oder left mit variablen machen , also z.B. "Mid(a,b)" oder so und das a und b in einer schleife hochzählen und das ergebnis (immer ein zeichen der zeile) mit "zeichen = Mid(a,b)" , "if zeichen = " " then" kannstd du dann zaehlen wie lang der einzelne abschnitt ist und das dann mit mid benutzen um den richtigen text zu kopieren.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hiob Geschrieben 15. November 2001 Autor Teilen Geschrieben 15. November 2001 Danke soweit, weiteres Problem ist, das die Längenangaben vor den Namen in einigen Fällen nicht korrekt sind... kann jemand den passenden VB-Code hier reinstellen? :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Eva Geschrieben 15. November 2001 Teilen Geschrieben 15. November 2001 Hmm aber Leerzeichen sind dazwischen, vielleicht könntest du es mit ihnen hinbekommen, indem du immer die Strings von Leerzeichen zu Leerzeichen nimmst, aber wenn du mehrere Wörter in einer Spalte speichern willst hast du ein Problem. Vielleicht dann noch überprüfen ob die ersten zwei Zeichen eine Nummer ist ... na ja so als Anregung *grübel* Servus Eva Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Tiana Geschrieben 15. November 2001 Teilen Geschrieben 15. November 2001 hi, aber die Länge der Namen (mit Leerzeichen und Nummer) ist doch fest. Also schneide doch einfach den Bereich aus, indem der Name steht, mit Leerzeichen und setzte ein TRIM()! Gruß,Tia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sonic83 Geschrieben 16. November 2001 Teilen Geschrieben 16. November 2001 @Tiana Ry: Ich würde mir die Beiträge nochmal genau durchlesen und dann nochmal überlegen was du für einen Vorschlag hast. Dazu sage ich nur: Wer lesen kann ist klar im Vorteil !!! Ich würde einfach immer bis zum nächsten Lehrzeichen einlesen und dann den ausgelesene string weiterbearbeiten, z. B. wenn der String 00 ist dann schmeis ihn weg. Wenn er was sinnvolles wie Name ist, dann liest du ihn aus. Dafür hab ich eine Idee, weis aber nicht ob das in VB funktioniert. Ich hab es in C++ schonmal so gemacht. Du liest jedes zeichen aus und wandelst es es in ASCII-Code um, dann bekommst du raus, ob das ein Buchstabe oder eine Zahl ist. Wenn du dann auf einen Buchstaben triffst liest du die 1 oder 2 stellen vorher aus, wandelst den String in einen Integer um und dann hast du auch schon den Namen...usw.. Hoffe ich konnte dir helfen!!! Gruß Sonic83 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 20. November 2001 Teilen Geschrieben 20. November 2001 Hi, schon mal probiert es mit mit SQL zu machen ? Beim SQL Server von Microdoof sind meines wissens die Programme isql und osql dabei. Dort kannst du angeben was trennzeichen sind (z.B.: 1 oder mehrere Leerzeichen) und was das Zeilenabschlußzeichen sein soll. Dann brauchst du nur noch angeben was wohin soll (oder ob es nirgendwo reinsoll) und das Prog geht die Datei dann Zeile für Zeile durhc und liest dir die Daten in die DB ein. Könnte auch das Programm bcp sein. <FONT COLOR="#a62a2a" SIZE="1">[ 21. November 2001 08:39: Beitrag 1 mal editiert, zuletzt von Panther ]</font> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.