appen from DATEI.TXT sdf

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
MatthiasF
Rookie
Rookie
Beiträge: 14
Registriert: Mi, 27. Feb 2008 7:18
Wohnort: Berlin

appen from DATEI.TXT sdf

Beitrag von MatthiasF »

Bin nach zwei Tagen xbase auf ein Problem gestoßen mit dem ich trotz lesen des entsprechenden Beitrages von 2005 nicht fertig werde.

use DATEN
copy stru to HILFSDAT
use HILFSDAT new
append from DATEI.TXT sdf

Bringt nen fetten Fehler, weil DATEI.TXT und die Struktur von DATEN.DBF nicht übereinstimmen.
Bekanntes Problem, da gibt es im Forum einen link auf SDFDEL.ZIP,
runtergeladen,
SDF.CH ins include Verzeichnis,
ins Programm #include "SDF.CH" eingetragen,
compiliert,
und beim linken kommt dann die Meldung:
unresolved external symbol _XDBEXPORT
unresolved external symbol _XDBIMPORT

Was nun ? Vielleicht weils von 2003 ist ?
Und bitte für Anfänger !
Wie ich es mit binärem lesen lösen könnte, ist mir klar, aber ich möchte das Rad nicht neu erfinden müssen. Und ich bin faul.

Matthias Fischer
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

mit der habe ich nie gearbeitet, aber die Meldung sagt eindeutig, dass ihm eine LIB oder eine OBJ Datei fehlt. Hast du PBUILD /G aufgerufen, nachdem du den include Befehl eingetragen hattest (bei VX geht es anders ...) ?

Braucht man für diesen Befehl eine neue DLL oder eine zusätzliche PRG Datei ? Beides muss man in der Projekt-Datei einbinden. Die DLL könnte man auch über PRAGMA in der PRG neben dem include definieren, aber immer nach solchen Änderungen PBUILD /G aufgerufen.

PS:

Xbase++ nimmt es übel, wenn die SDF Datei nicht wirklich eine feste Satzlänge hat.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Beitrag von Rolf Ramacher »

Hi Matthias,

wie sieht denn deine dbesys.prg aus. Welche Datenbanktreiber hast du geladen.?? Ich meine du müßstest auch das so machen:

append from datei.txt Via SDF
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
MatthiasF
Rookie
Rookie
Beiträge: 14
Registriert: Mi, 27. Feb 2008 7:18
Wohnort: Berlin

Beitrag von MatthiasF »

Das geht ja fix hier. Ihr habt mich aber weit hinter Euch gelassen.

@rolf: Wieso Datenbanktreiber, wieso laden, ich habe hier ganz normale *.DBF und *.NTX Dateien ? Dann bin ich nicht mehr clipper kompatibel und das trau ich mich noch nicht, weil ich mich momentan noch von Fehler zu Fehler vorhangele. Ich kenne via nur aus dem Zusammenhang mit use.

@hubert: Habe das SDF.OBJ aus der SDFDEL.ZIP ins lib Verzeichnis geschoben und mit meinen Objekten verlinkt, keine Fehlermeldungen und läuft. Kapiert wieso habe ich allerdings nicht. Kann mir das jemand erklären ? Ich schaue wie Schwein in Uhrwerk.

Die vollmundige Aussage "funktioniert dann wie clipper" stimmt übrigens nicht. clipper nimmt auch nur chr(10) am Zeilenende und sowas habe ich hier, habe ich aber nie bemerkt, weils ja lief. Datei kommt von Unix, also bringt unixtodos abhilfe. Dann sind die geforderten chr(13) + chr(10) beisammen.
Gruß Matthias Fischer
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Matthias,

nur so als Einwurf, Du kannst nahezu wild mischen. Du must nur eben per VIA sagen, welchen Treiber Du benutzen willst.

Es geht Rolf wohl darum zu wissen, ob Du den SDF Treiber für die Textdatei eingebunden hast
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Manfred,

ich glaube Matthias hat noch nicht gemerkt, daß er eben DOCH einen Datenbanktreiber benutzt. Weil der eben in der Standard-DBESys drin steht. Und weil das standardmäßig die DBFNTX ist, damit Clipper-Kompatibel ist. Xbase++ ist in der Beziehung eben einfach super genial.

Matthias: Das ist ja das schöne an Xbase++. Man kann Clipper-Kompatibel bleiben, wenn man möchte. Und wenn man einfach einen anderen Treiber einbaut, dann kann man auch alles andere machen. Z. B. auch eine sdf als Datenbank einbinden. Das war das, was Rolf meinte. Du lädtst einfach beide Trieber, und kannst dann Daten zwischen beiden Systemen hin- und herschieben.

Jan
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

nein, er hat keinen Dateitreiber aktiviert, sondern nutzt append from SDF.
Das das bei Xbase++ dabei ist, ist aber nicht zu Clipper kompatibel, da Clipper mit allem zurechtkommt was als Text in einer Zeile liegt (Satzlänge nahezu egal), Xbase++ aber eine Definitionsdatei braucht und auch nur gleiche Satzlängen verarbeiten kann.

Dann hat er wohl die Verbesserung von Alaska geladen und eingebunden um immer noch append from zu nutzen.

Die SDFDBE würde aber das Öffnen der Textdatei wie eine DBF ermöglichen, was laut hier veröffentichten Berichten sehr einfach sein soll, habe ich aber auch noch nicht gemacht.

Ich lade solche Dateien immer in den RAM und zerhacke dann in passende Stücke, das ist aber mehr Arbeit und nicht immer einfach ;-)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

also pauschal gesagt: Das ist genial einfach. Es muß nur halt vorher angegeben werden, was man für Feldtypen erwartet. Wenn man aber alles als "C" angibt und dann selbst umwandelt, dann kann mehr oder weniger kommen was will.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Hallo Matthias,

versuch mal mit DELDBE, wenn du diese zur Verfügung hast. Da kannst du mehr einstellen.

Oder du muss für SDFDBE eine Struktur-Datei anlegen.
z.B.

Code: Alles auswählen

[INFO] 
file=TEST.TXT 
fieldcount=4 
recsize=27 
reccount=10 
 

[FIELDS] 
ZEICHEN=C,10,0 
DATUM=D,8,0 
LOGISCH=L,1,0 
NUMERISCH=N,6,2 
[END] 
Sonst ist es in der Hilfe gut beschrieben.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

ich habe gerade eines meiner älteren Umwandlungsprogramme mit Xbase++ compiliert und dabei festgestellt, dass die SDF Datei scheinbar automatisch generiert wird (???) - zumindest finde ich nichts in meinem Quellcode ...

Und nach dem APPEND ... SDF doch glatt 220 von 20000 Datensätzen fehlen .... warum und welche weiß ich jetzt gar nicht - sind schwer zu finden.

ALSO ICH LASS DIE FINGER VON APPEND ... SDF WEG !
Gruß
Hubert
Antworten