Text Datei in Access Feld einlesen

Anfängerfragen zum Programmieren mit PureBasic.
Excalibur
Beiträge: 27
Registriert: 26.02.2007 23:56

Text Datei in Access Feld einlesen

Beitrag von Excalibur »

Hallo,

ich habe folgende Frage an Euch:

Ich habe eine Access-Datenbank, in welcher ein Feld vorkommt, daß den gesamten Inhalt einer Text-Datei beinhalten soll.

Beispiel:
Es wird ein Serienbrief in Word erstellt, und jeder Brief wird einzeln abgespeichert. (Hintergrund: Die Daten werden in einen HTML-Text eingebettet.)

Die Datei wird als TXT - Datei abespeichert.

Nun soll der gesamte Inhalt der Datei in ein Feld eingelesen werden, was dann in Access an eine Tabelle angehängt werden soll. (Die Tabelle soll später als Datengrundlage für div. HTML Seiten dienen.)

Man kann zwar TXT-Dateien in Access importieren, man erhält dabei aber leider pro Zeile einen neuen Datensatz.

z.B.
Datensatz 1: Material PE
Datensatz 2: Gewicht 140

Das ist natürlich Unsinn. Das ganze Zeugs soll in einen Datensatz und vor allem in ein Feld.

Sagt mir jetzt bitte nicht, daß ich nun VBA anstatt PB lernen soll.

Das Einlesen der Textdatei ist weniger das Problem. While EOF ...

Vielmehr interessiert es micht, wie ich diesen Inhalt in ein einziges Feld reinkriege, so daß ich es z.B. mit Excel oder Access wieder einlesen kann.

-> Jedes Feld ist einen neue Zeile in der Zieltabelle
-> Da der Text des Textdokumentes sehr viel HTML enthält, ist es schwierig, ein geeignetes Trennzeichen zu finden.
-> Wie würdet Ihr das anstellen?

Vielen Dank.
PB v4.02 XP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich kenne mich mit Access garnicht aus, aber wenn es kein entsprechendes
mehrzeiliges Textfeld zur Verfügung stellt, sollteste einen Blob nehmen. Darin
kannste jede Textgröße in jedem Format speichern.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Excalibur
Beiträge: 27
Registriert: 26.02.2007 23:56

Beitrag von Excalibur »

Hallo,

freut mich, wieder von Dir zu hören.

Nun kennst Du Dich nicht in Access aus und ich weiß nicht, was ein "Blob" ist. Das hab ich noch nie gehört.

Es muß ja keine Access Datei sein. Es kann eine CSV, RTF oder sonstiges sein. Das kann ich alles in Access importieren.

Es geht lediglich darum:
Wie kriege ich den kompletten Inhalt einer TXT-Datei (mit Zeilenumbrüchen) in ein einziges Datenfeld.

In etwa so:
Dateiinhalt der Datei 1 komplett in String einlesen
String in Zieldatei Datensatz 1 Feld1 schreiben.

dann
Dateiinhalt der Datei 2 (also die nächste Datei) komplett in String einlesen
String in Zieldatei (also gleiche Datei) Datensatz 2 (!jetzt 2. Datensatz) Feld1 schreiben.
etc.

Das kann doch nicht so schwer sein. Theoretisch müßte es so gehen, nur habe ich keinen passenden Read - Befehl gefunden, der mir nicht nur die Zeile, sondern die ganze Datei (also mit Zeilenumbrüchen) einliest.

Noch eine persönliche Frage, mußt Du aber nicht beantworten: Wieso bist Du eigentlich immer um die Uhrzeit noch wach? Hast Du auch das Byte-Syndrom wie ich? :allright:
PB v4.02 XP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

In Blobs werden binäre Dateien gespeichert, egal ob Video, Text, Exe oder
sonstwas. Siehe: http://de.wikipedia.org/wiki/Binary_Large_Object
Bei den PBOSL_Examples ist ein SQLite3 Beispiel mit Blob, wobei hierbei
Bilder eingelesen werden. Access sollte eigentlich auch Blob kennen, bin mir
da aber nicht sicher.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

BLOB geht auch in Access (OLE-Object) ;-).

Texte in VARCHAR-Feldern wie immer mit UPDATE SET bzw. INSERT INTO.

Dabei die Textdatei vorher komplett in eine Stringvariable einlesen.

Speicher allozieren Größe = Dateigröße (LoF)
ReadFile
ReadData mit Speicherpuffer und Dateigröße
CloseFile
TextString = PeekS(..)


Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
Excalibur
Beiträge: 27
Registriert: 26.02.2007 23:56

Beitrag von Excalibur »

Hallo zusammen,

vielen Dank für die vielen Infos.

Ich findes es wirklich klasse, daß Ihr immer so schnell und umfangreich antwortet.

Nur ist es so, daß wir hier im Anfänger-Forum sind. Daher verstehe ich nur Bahnhof. (sorry, bin kein sql'er)

Ich hatte gestern oder besser gesagt heute Nacht an anderer Stelle danach gefragt, ob es zumindest im Anfänger Forum möglich wäre, die Sachen etwas zu kommentieren oder ausführlicher zu beschreiben. :roll:

Letztendlich können die anderen Newbies und ich mit solch spezieller Syntax wenig anfangen. Ich hoffe, daß das jetzt nicht unverschämt war.

Wäre wirklich super nett von Euch, wenn das ginge. Dann bräuchten wir nicht so oft nachhaken und Euch immer nerven. Vielen Dank. <)
PB v4.02 XP
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

SQL hat auch nicht unbedingt was mit PureBasic zu tun, dafür findest z.B. hier
http://sql.1keydata.com/de/ ein Tutorial
sowie hier: http://www.purebasic.fr/german/viewtopic.php?t=6323
was für PB
Aber ob man als Einsteiger gleich mit Datenbanken anfangen sollte :freak:

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Excalibur
Beiträge: 27
Registriert: 26.02.2007 23:56

Beitrag von Excalibur »

Hallo und Danke für die Links.

Ich arbeite schon seit über 10 Jahren mit Access Datenbanken. Das schöne daran ist, daß man die Selektionen nicht unbedingt über SQL eingeben muß. Natürlich läuft dies im Hintergrund über SQL ab. Man kann aber bequem über das GUI arbeiten.

Daher ist es kein Widerspruch, als PB Anfänger Daten in Access einzulesen. Es geht ja nur um ein für Profis recht simples Problem.

Nun denn, ich werde mir das Tutorial mal anschauen. Vielleicht bin ich dann schlauer.

Dankeschön. :oops:
PB v4.02 XP
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Handling mit Accessdatei:
http://www.purebasic.fr/german/viewtopic.php?t=8944

und Textdatei komplett in Variable einlesen:
http://www.purebasic.fr/german/viewtopi ... t=readdata
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Excalibur
Beiträge: 27
Registriert: 26.02.2007 23:56

Beitrag von Excalibur »

Hey danke, da werd ich wohl wieder ein paar Tage mit studieren beschäftigt sein. :roll:
PB v4.02 XP
Antworten