MemoRead() <-> LowLevel Funktionen [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Naja,
wir haben halt einen großen Vorteil den Könnern hier gegenüber:
Wir können noch sehr viel dazulernen und haben noch einen ganz großen Ahaeffekt.
wir haben halt einen großen Vorteil den Könnern hier gegenüber:
Wir können noch sehr viel dazulernen und haben noch einen ganz großen Ahaeffekt.
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!!
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
hast Du in Deiner neuen Datei mal die Anzahl der ";" gezählt?
Es muß ein vielfaches der Zeilenanzahl sein - wenn nicht, klappt es natürlich nicht! Dann hast Du innerhalb eines Feldes ebenfalls ein ";" und dann knallt es!
Viele Grüße,
Martin
hast Du in Deiner neuen Datei mal die Anzahl der ";" gezählt?
Es muß ein vielfaches der Zeilenanzahl sein - wenn nicht, klappt es natürlich nicht! Dann hast Du innerhalb eines Feldes ebenfalls ein ";" und dann knallt es!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
wie ein Vielfaches der Zeilenanzahl? Das ist es doch schon, wenn pro Zeile mehr als 1 Semikolon auftaucht.
meinst Du wenn innerhalb eines Feldes nochmal ein ";" auftaucht, also zum Beispiel test;test, das aber ein Feld sein soll?
Nun, das war mit das erste was ich geprüft hatte. Ist wirklich nur als Feldtrenner genutzt.
wie ein Vielfaches der Zeilenanzahl? Das ist es doch schon, wenn pro Zeile mehr als 1 Semikolon auftaucht.
meinst Du wenn innerhalb eines Feldes nochmal ein ";" auftaucht, also zum Beispiel test;test, das aber ein Feld sein soll?
Nun, das war mit das erste was ich geprüft hatte. Ist wirklich nur als Feldtrenner genutzt.
Zuletzt geändert von Manfred am Mo, 29. Okt 2007 18:06, insgesamt 2-mal geändert.
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!!
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Yup!
Dann ist ja gut...
Viele Grüße,
Martin
Dann ist ja gut...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
das sollte auch mit ";" funktionieren.
gruss by OHR
Jimmy
oder in pure Xbase++Manfred hat geschrieben: PS: Stopp, ich habe es gefunden. Ich denke AtNum() ist mein Freund.
Code: Alles auswählen
FUNCTION Countat( cFile, cExt )
LOCAL nRet := 0
LOCAL nPosi := 1
LOCAL nMax := LEN(cFile)
DO WHILE nPosi > 0
nPosi := AT(cExt,cFile,nPosi+1)
IF nPosi > 0
nRet++
ELSE
EXIT
ENDIF
ENDDO
RETURN nRet
Beispiel :
nPosi := Countat( UPPER(cFile),".AVI")
cSuch := STRTRAN( UPPER(cFile),".AVI" ,".AVS", nPosi )
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Jimmy,
das ist sicherlich wahr, aber dann kommen wir zu meinem Thema im anderen Thread, wie man sowas optimieren kann. Ich denke einmal die fertigen Funktionen sind auch schneller als es in reinem Xbase++ nachzubauen.
das ist sicherlich wahr, aber dann kommen wir zu meinem Thema im anderen Thread, wie man sowas optimieren kann. Ich denke einmal die fertigen Funktionen sind auch schneller als es in reinem Xbase++ nachzubauen.
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
hat irgendwer eine Ahnung, ob Charrepl() aus den Tools eine Größenbegenzung hat? Ich habe jetzt einfach einmal versucht die ";" gegen ein CHR(9) auszutauschen, von dem ich ja weiß, dass es klappt. Es wird immer nur ein leerer String zurückgeliefert. Wenn ich einen kurzen eigenen Satz bilde, dann klappt die Funktion.
Das hier klappt:
nText := Charrepl(";","hallo;das;ist;ein;test",CHR(9))
Naja, die Datei hat zur Zeit eine Größe von über 360MB.....
hat irgendwer eine Ahnung, ob Charrepl() aus den Tools eine Größenbegenzung hat? Ich habe jetzt einfach einmal versucht die ";" gegen ein CHR(9) auszutauschen, von dem ich ja weiß, dass es klappt. Es wird immer nur ein leerer String zurückgeliefert. Wenn ich einen kurzen eigenen Satz bilde, dann klappt die Funktion.
Das hier klappt:
nText := Charrepl(";","hallo;das;ist;ein;test",CHR(9))
Naja, die Datei hat zur Zeit eine Größe von über 360MB.....
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!!
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
oft ein Zeichen vorkommt.
gruss by OHR
Jimmy
aber "die" Funktion gibt es nicht in den Xbtools ... sie zählt ja nur wieManfred hat geschrieben: das ist sicherlich wahr, aber dann kommen wir zu meinem Thema im anderen Thread, wie man sowas optimieren kann. Ich denke einmal die fertigen Funktionen sind auch schneller als es in reinem Xbase++ nachzubauen.
oft ein Zeichen vorkommt.
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Watt?
Du meinst jetzt auch Charrepl() ? Die macht genau das was ich haben will, naja zumindest bei kleinen Texten. Ich versuche gerade einmal zu prüfen, ob es wirklich eine Grenze gibt...
Du meinst jetzt auch Charrepl() ? Die macht genau das was ich haben will, naja zumindest bei kleinen Texten. Ich versuche gerade einmal zu prüfen, ob es wirklich eine Grenze gibt...
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!!
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
was Charrepl() kann man doch auch STRTRAN() nehmen?!
gruss by OHR
Jimmy
ich bezog mich auf die von mir gepostete Function Countat().Manfred hat geschrieben: Watt?
Du meinst jetzt auch Charrepl() ? Die macht genau das was ich haben will, naja zumindest bei kleinen Texten. Ich versuche gerade einmal zu prüfen, ob es wirklich eine Grenze gibt...
was Charrepl() kann man doch auch STRTRAN() nehmen?!
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Stimmt, verdammt, habe ich die ganze Zeit übersehen. Das werde ich jetzt mal ausprobieren.
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
So,
also Charrepl() scheint irgendwie ne Macke zui haben bei sehr großen Dateien. Mit StrTran() geht es. Jetzt habe ich die ";" gegen CHR(9) ausgetauscht, aber dei Unterteilung in Field1-x klappt trotzdem nicht. Die DELDBE macht immer nur ein Spalte daraus. Also liegt das Problem woanders. Hm, also weiterbasteln.
also Charrepl() scheint irgendwie ne Macke zui haben bei sehr großen Dateien. Mit StrTran() geht es. Jetzt habe ich die ";" gegen CHR(9) ausgetauscht, aber dei Unterteilung in Field1-x klappt trotzdem nicht. Die DELDBE macht immer nur ein Spalte daraus. Also liegt das Problem woanders. Hm, also weiterbasteln.
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!!
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
so würde es ja gehen, aber : Das ";" ist ja üblicherweise bei CVS Dateien
in der ersten Zeile und wird als Feldname übernommen ... wenn er aber
kein ";" mehr findet wird es einen Makro Error geben ...
und es gibt wohl auch noch einen offenen BUG seit der v1.3x :
http://www.alaska-software.com/scripts/ ... PDRID=3629
Wenn du also wirklich Textdateien browsen willst geht das auch ohne
DELDBE wenn man die "Skipper" anpasst. Ich hab da sicherlich noch
was rumliegen ... muss mal suchen.
gruss by OHR
Jimmy
Yup an deiner Reihenfolge ...Manfred hat geschrieben: Die DELDBE macht immer nur ein Spalte daraus. Also liegt das Problem woanders.
Code: Alles auswählen
DBESETDEFAULT("deldbe")
// Umschalten zu Multi-Field
DbeInfo( COMPONENT_DATA, DELDBE_MODE, DELDBE_MULTIFIELD )
// Semikolon als Trennzeichen zwischen den Spalten
DBEINFO(COMPONENT_DATA, DELDBE_FIELD_TOKEN,";")
// Kein Trennzeichen für Zeichenwerte
DBEINFO(COMPONENT_DATA, DELDBE_DELIMITER_TOKEN, Chr(0) )
DBEINFO(COMPONENT_DATA, DELDBE_MAX_BUFFERSIZE, 128*1024)
// Währungen werden mit Komma getrennt
DBEINFO(COMPONENT_DATA, DELDBE_DECIMAL_TOKEN, ",")
CLS
* Dbusearea(.T.,"DELDBE","SEMIKO.TXT",,.F.)
USE ("SEMIKO.TXT") VIA DELDBE
browse()
RETURN
in der ersten Zeile und wird als Feldname übernommen ... wenn er aber
kein ";" mehr findet wird es einen Makro Error geben ...
und es gibt wohl auch noch einen offenen BUG seit der v1.3x :
http://www.alaska-software.com/scripts/ ... PDRID=3629
Wenn du also wirklich Textdateien browsen willst geht das auch ohne
DELDBE wenn man die "Skipper" anpasst. Ich hab da sicherlich noch
was rumliegen ... muss mal suchen.
gruss by OHR
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
hier ist so ein Textbrowser mit "Skipper"
gruss by OHR
Jimmy
hier ist so ein Textbrowser mit "Skipper"
gruss by OHR
Jimmy
Code: Alles auswählen
/*****
*
* TBR28.PRG
* Browsing a text file - first approach
*
*/
#include "inkey.ch"
#include "fileio.ch"
#include "setcurs.ch"
#include "samples.ch"
#include "tbrowse.ch"
#define WHAT_IT_DOES "ESC - Quit"
#xtranslate BOFile() => (n == nFirstRec)
#xtranslate EOFile() => (n == nLastRec)
// Global stuff
STATIC cBuffer
STATIC n
STATIC nLastRec
STATIC nFirstRec
/*****
*
* Main Function
* WARNING: This program does not handle line overflow
*
*/
PROCEDURE MAIN(cFile)
TBR28(cFile)
RETURN
FUNCTION Tbr28( cFile )
LOCAL nHandle, oBrow, nKey, nMaxRow, nMaxCol
LOCAL oCol
// Open file
nHandle := FOPEN( cFile, FO_READ )
IF nHandle < 0
SCROLL()
QOUT( MSG_TBR28_ERR )
QUIT
ENDIF
// Screen (not handled by TBrowse
SETCURSOR(SC_NONE)
SETBLINK(.F.) // This way you have more colors
SETCOLOR(BR_TXT_BGND_CLR)
SCROLL()
nMaxRow := MAXROW()
nMaxCol := MAXCOLUMN
SCROLL()
// "Shadow"
SETCOLOR(BR_TXT_BLACK)
SCROLL( 3, 4, nMaxRow - 2, nMaxCol - 2)
SETCOLOR(BR_TXT_CLR_SPEC)
@ 0, 0 SAY PADC(BR_TXT_HEADER, nMaxCol + 1) COLOR BR_TXT_HEAD_CLR
@ nMaxRow, 0 SAY PADC(WHAT_IT_DOES, nMaxCol + 1) COLOR MSG_ROW_CLR
// Positioning
nLastRec := FindBottom(nHandle)
nFirstRec := n := FindTop(nHandle)
// STEP 1
oBrow := TBROWSEDB( 2, 2, nMaxRow - 3, nMaxCol - 4)
oBrow:skipBlock := {|x| SkipRec(x, nHandle)}
oBrow:goTopBlock := {|| n := FindTop(nHandle)}
oBrow:goBottomBlock := {|| n := FindBottom(nHandle)}
// STEP 2
cBuffer := SPACE(RECSIZE)
oCol := TBCOLUMNNEW( , {|| cBuffer} )
oCol:width := nMaxCol - 5
oBrow:addColumn(oCol)
WHILE .T.
// STEP 3
ForceStable(oBrow)
// STEP 4
nKey := INKEY(0)
IF !TBMoveCursor( nKey, oBrow )
IF nKey == K_ESC
EXIT
ENDIF
ENDIF
END
SCROLL()
RETURN (NIL)
/*****
*
* Main Skipper
*
*/
FUNCTION SkipRec( nRequest, nHandle )
LOCAL nActually := 0
IF (nRequest == 0)
ReadLine(nHandle, 0)
ELSEIF (nRequest > 0)
WHILE (nActually < nRequest) .AND. ;
(!EOFile())
ReadLine(nHandle, 1)
nActually++
END
ELSEIF (nRequest < 0)
WHILE (nActually > nRequest) .AND. ;
(!BOFile())
ReadLine(nHandle, -1)
nActually--
END
ENDIF
RETURN (nActually)
/*****
*
* Top of File
*
*/
FUNCTION FindTop(nHandle)
LOCAL cBuff := SPACE(RECSIZE)
LOCAL nAt
FSEEK(nHandle, 0, FS_SET)
FREAD(nHandle, @cBuff, RECSIZE)
nAt := AT(CR, cBuff)
RETURN (FSEEK(nHandle, nAt + 1, FS_SET))
/*****
*
* Bottom of File
*
*/
FUNCTION FindBottom(nHandle)
// Assume last byte is an LF
RETURN (FSEEK(nHandle, 0, FS_END))
/*****
*
* Reads a line of text
*
*/
FUNCTION ReadLine( nHandle, nRec )
LOCAL cBuff := SPACE( RECSIZE )
LOCAL nAt
IF (nRec == 0)
BackCRLF(nHandle, 1)
ELSEIF (nRec < 0)
BackCRLF(nHandle, 2)
ENDIF
FREAD(nHandle, @cBuff, RECSIZE)
nAt := AT(CR, cBuff)
FSEEK(nHandle, n, FS_SET)
cBuff := SPACE(RECSIZE)
FREAD(nHandle, @cBuff, nAt + 1)
n := FSEEK(nHandle, 0, FS_RELATIVE)
cBuffer := SUBSTR(cBuff, 1, RAT(CR, cBuff) - 1)
RETURN (NIL)
/*****
*
* Pointer at proper place
*
*/
FUNCTION BackCRLF(nHandle, nTimes)
LOCAL cBuff
LOCAL nCnt := 0
FSEEK(nHandle, -2, FS_RELATIVE)
WHILE (nCnt < nTimes)
cBuff := SPACE(1)
WHILE (cBuff != CR) .AND.;
(FSEEK(nHandle, 0, FS_RELATIVE) != 0)
FSEEK(nHandle, -1, FS_RELATIVE)
FREAD(nHandle, @cBuff, 1)
FSEEK(nHandle, -1, FS_RELATIVE)
END
nCnt++
END
IF (FSEEK(nHandle, 0, FS_RELATIVE) != 0)
n := FSEEK(nHandle, 2, FS_RELATIVE)
ELSE
n := FSEEK(nHandle, 0, FS_SET)
ENDIF
RETURN (NIL)
// EOF - TBR28.PRG //
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi
verflixt, das war nur ein Beispiel. Ich wollte Textdateien schon so behandeln wie eine DB, nämlich Skippen und dann die entsprechenden Spalten in eine normale dbf speichern.
verflixt, das war nur ein Beispiel. Ich wollte Textdateien schon so behandeln wie eine DB, nämlich Skippen und dann die entsprechenden Spalten in eine normale dbf speichern.
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
was läuft denn hier schon wieder falsch?
Es kommt bei Dbusearea, oder auch nur einfach USE die Fehlermeldung unzulässige Funktion. Wenn ich direkt nach Dbesetdefault("deldbe") abfrage, dann ist die Deldbe aktiv.
was läuft denn hier schon wieder falsch?
Code: Alles auswählen
#include "deldbe.ch"
#include "Fileio.ch"
PROCEDURE main()
DBESETDEFAULT("deldbe")
DBEINFO(COMPONENT_DATA, DELDBE_FIELD_TOKEN,CHR(9))
DBEINFO(COMPONENT_DATA, DELDBE_DELIMITER_TOKEN, Chr(0) ) //
DBEINFO(COMPONENT_DATA, DELDBE_MAX_BUFFERSIZE, 128*1024)
DBEINFO(COMPONENT_DATA, DELDBE_DECIMAL_TOKEN, ",") // Währungen werden mit Komma getrennt
DbeInfo(COMPONENT_DATA, DBE_EXTENSION,"")
DBEINFO(COMPONENT_DATA, DELDBE_FIELD_TYPES, "NCCNNCNCCCCCNCCNNCCCCCC")
Dbusearea(.T.,"DELDBE","generic",,.F.)
RETURN
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!!
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
ich mache das - im Prinzip - so wie Du, nur nehme ich statt des dbUseAreas einfach:
Viele Grüße,
Martin
ich mache das - im Prinzip - so wie Du, nur nehme ich statt des dbUseAreas einfach:
Code: Alles auswählen
use ( iquellpfad + ausdatei ) via ("DELDBE")
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
...wobei ich mich nur auf die drei DELDBE_DELIMITER_TOKEN, DELDBE_FIELD_TOKEN und DELDBE_FIELD_TYPES beschränke!
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
ich habe ja oben genanntes Problem. Ich habe gerade aus einem funktionierenden Programmteil den Part übernommen, in dem ich eine TExtdatei öffne und die Spaltentrennung klappt. Ich möchte jetzt Schritt für Schritt nachvollziehen, wo denn nun das Problem liegt. Irgendwo mache ich etwas falsch, oder anders als im funktionierenden Teil.
ich habe ja oben genanntes Problem. Ich habe gerade aus einem funktionierenden Programmteil den Part übernommen, in dem ich eine TExtdatei öffne und die Spaltentrennung klappt. Ich möchte jetzt Schritt für Schritt nachvollziehen, wo denn nun das Problem liegt. Irgendwo mache ich etwas falsch, oder anders als im funktionierenden Teil.
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!!
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
was willst Du mit DBE_EXTENSIONS erreichen?
Dein Kommentar zu DELDBE_DECIMAL_TOKEN ist irreführend! Natürlich werden nicht die Währungen mit "," getrennt, sondern Zahlen haben ein "," als Dezimaltrennzeichen (also 123,09 statt 123.09)!
Viele Grüße,
Martin
was willst Du mit DBE_EXTENSIONS erreichen?
Dein Kommentar zu DELDBE_DECIMAL_TOKEN ist irreführend! Natürlich werden nicht die Währungen mit "," getrennt, sondern Zahlen haben ein "," als Dezimaltrennzeichen (also 123,09 statt 123.09)!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
damit erreiche ich, dass das Programm auch eine TExtdatei ohne .txt aufmacht. Ansonsten erwartet es text.txt und das ist in dem Fall nicht gut.
damit erreiche ich, dass das Programm auch eine TExtdatei ohne .txt aufmacht. Ansonsten erwartet es text.txt und das ist in dem Fall nicht gut.
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!!
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hmm,
ich habe bei mir den Parameter nicht und er öffnet trotzdem eine Datei namens Daten.csv ohne Probleme.
Oder meinst Du, dass er eine Datei namens Daten öffnen soll - völlig ohne Extension?
Geht denn dann nicht einfach
Aber wenn das an sich funktioniert, dann ist ja gut...
Viele Grüße,
Martin
ich habe bei mir den Parameter nicht und er öffnet trotzdem eine Datei namens Daten.csv ohne Probleme.
Oder meinst Du, dass er eine Datei namens Daten öffnen soll - völlig ohne Extension?
Geht denn dann nicht einfach
Code: Alles auswählen
use ( "Daten." ) via ("DELDBE")
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
richtig,
ich meinte OHNE Extension. Ich habe es nur so probiert und war mit dem Ergebnis dann zufrieden.
ich meinte OHNE Extension. Ich habe es nur so probiert und war mit dem Ergebnis dann zufrieden.
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Also,
das Problem ist gelöst. Allerdings frage ich mich jetzt ob da nicht evtl. ein dicker Hund im System begraben ist? Die Fehlermeldung "unzulässige Funktion" worauf läßt die denn schließen?
Falsch!!
Richtig ist "Die Datei ist nicht vorhanden"....
Das ich darauf nicht von selbst gekommen bin, tse tse tse.
das Problem ist gelöst. Allerdings frage ich mich jetzt ob da nicht evtl. ein dicker Hund im System begraben ist? Die Fehlermeldung "unzulässige Funktion" worauf läßt die denn schließen?
Falsch!!
Richtig ist "Die Datei ist nicht vorhanden"....
Das ich darauf nicht von selbst gekommen bin, tse tse tse.
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!!
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!!
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
So Leute,
Charrepl() -> PDR 5998
Charrepl() -> PDR 5998
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!!
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!!