Zum Inhalt springen

Textdaten in Datenbank konvertieren


hiob

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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....

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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:

:DWer lesen kann ist klar im Vorteil !!! :D

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...