Verzeichnis auswählen
Moderator: Moderatoren
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Verzeichnis auswählen
Einen wunderschönen guten Morgen allerseits,
ich hab' hier mal 'ne Frage, die bei den erfahreneren Programmierern ein Lächeln auslöst weil sie so trivial und banal sein dürfte. Trotzdem stelle ich sie hier, da ich keine Lust habe, hier weitere Tage und Wochen mit herumzu experimentieren.
In meiner Anwendung soll ein Benutzer ein (daten-)Verzeichnis auswählen können und ggf. sogar ein neues anlegen. Die Auswahl der Datenbanken soll bzw. muß dem Programm überlassen werden.
In den Samples ist zwar ein ähnliches Beispiel, aber der Benutzer soll - wie gesagt - keine Datenbanken auswählen, und es soll ein vorgegebenes Verzeichnis sein (evtl. sogar auf einem anderen Laufwerk ???)
Ich kann mir sehr gut vorstellen, dass der eine oder andere von Euch hier schon eine fertige Lösung hat.
Danke für Eure Kommentare und Hilfe.
Gruß
Lutz
ich hab' hier mal 'ne Frage, die bei den erfahreneren Programmierern ein Lächeln auslöst weil sie so trivial und banal sein dürfte. Trotzdem stelle ich sie hier, da ich keine Lust habe, hier weitere Tage und Wochen mit herumzu experimentieren.
In meiner Anwendung soll ein Benutzer ein (daten-)Verzeichnis auswählen können und ggf. sogar ein neues anlegen. Die Auswahl der Datenbanken soll bzw. muß dem Programm überlassen werden.
In den Samples ist zwar ein ähnliches Beispiel, aber der Benutzer soll - wie gesagt - keine Datenbanken auswählen, und es soll ein vorgegebenes Verzeichnis sein (evtl. sogar auf einem anderen Laufwerk ???)
Ich kann mir sehr gut vorstellen, dass der eine oder andere von Euch hier schon eine fertige Lösung hat.
Danke für Eure Kommentare und Hilfe.
Gruß
Lutz
- 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 Lutz,
hast Du Dich schon mit dem XbpFileDialog() auseinandergesetzt?
mit dem Schnipsel gibst Du Dateien vor, die auch nicht geändert werden können in der Anzeige.
hast Du Dich schon mit dem XbpFileDialog() auseinandergesetzt?
Code: Alles auswählen
DIRCHANGE("..\") // in das Rootverzeichnis des Programmes
cShdVerzeichnis := CurDir() // ermitteln, wie das heißt
DIRCHANGE("programm")
cUmsatzVerzeichnis := CurDrive() + ":\" + cShdVerzeichnis
cUmsatzVerzeichnis += "\datenbanken\kasse\" + ALLTRIM(STR(YEAR(DATE()))) + "\" + ALLTRIM(STR(MONTH(DATE()))) // das sollte als Vorgabe genügen
oDlg := XbpFileDialog():new():create()
oDlg:fileFilters := {;
{"kassenbericht_20*.dbf","kassenbericht_20*.dbf"};
}
oDlg:noWriteAccess := .T. // es soll hier nichts von Hand geändert werden können
oDlg:title := "Auswählen von Kassenberichten..."
oDlg:validatePath := .T. // sollte mal getestet werden
cFile := oDlg:open(cUmsatzVerzeichnis)
oDlg:destroy()
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!!
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
- AUGE_OHR
- Marvin
- Beiträge: 12910
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
ähnlich wie Manfred verwende ich XbpFileDialog :
gruss by OHR
Jimmy
ähnlich wie Manfred verwende ich XbpFileDialog :
Code: Alles auswählen
STATIC PROCEDURE OPENDIR()
LOCAL oFileDlg
LOCAL cPathName
LOCAL nPosi := 0
oFileDlg := XbpFileDialog():new()
oFileDlg:center := .T.
oFileDlg:title := 'Start Ordner auswählen'
oFileDlg:create()
cPathName := oFileDlg:saveAs("Select Path, Press Enter or Click SAVE",,.T.)
IF .NOT. EMPTY(cPathname)
*** extract path in case user selected a file
nPosi := RAT("\",cPathName)
IF nPosi > 0
cPathName := Upper( LEFT( cPathName, nPosi ))
ENDIF
...
ENDIF
RETURN
Jimmy
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
vielen Dank für eure Vorschläge....
der erste hatte einen sehr guten Ansatz und funktionierte mehr oder weniger in meinem sinne.
der zweite hat mir nicht wirklich weitergeholfen, da ich vorher noch nie in der newsgroup war und ich den genannten artikel auch nicht gefunden habe.
der letzte ansatz von Jimmy war der beste.
Doch leider habe ich ein problem, das ausgewählte verzeichnis zum standard-datenpfad zu machen.
was habe ich übersehen ??
Gruß
Lutz
der erste hatte einen sehr guten Ansatz und funktionierte mehr oder weniger in meinem sinne.
der zweite hat mir nicht wirklich weitergeholfen, da ich vorher noch nie in der newsgroup war und ich den genannten artikel auch nicht gefunden habe.
der letzte ansatz von Jimmy war der beste.
Doch leider habe ich ein problem, das ausgewählte verzeichnis zum standard-datenpfad zu machen.
wenn ich dann die datenbanken auf existenz (if File(database)) prüfen möchte bzw. mit diesen dankenbanken arbeiten möchte, verzweigt das programm immer wieder auf das "ursprungsverzeichnis"PROCEDURE em_03b
LOCAL oFileDlg
LOCAL cPathName
LOCAL nPosi := 0
oFileDlg := XbpFileDialog():new()
oFileDlg:center := .T.
oFileDlg:title := 'Start Ordner auswählen'
oFileDlg:create()
cPathName := oFileDlg:saveAs("Select Path, Press Enter or Click SAVE",,.T.)
IF .NOT. EMPTY(cPathname)
*** extract path in case user selected a file
nPosi := RAT("\",cPathName)
IF nPosi > 0
cPathName := Upper( LEFT( cPathName, nPosi ))
ENDIF
ENDIF
set DEFAULT TO cPathName
set PATH TO (cPfad)
MsgBox("Pfad wurde gesetzt auf: "+CurDir())
If ! File(database)
--> Erstellen neue Datenbank im neuen verzeichnis
else
--> öffne Datenbank im neuen verzeichnis
end
RETURN
was habe ich übersehen ??
Gruß
Lutz
- 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 Lutz,
so wie ich das sehen, scheint Deine Methodik zum Abschneiden eines Files nicht schlüssig zu sein?
Du gehst von rechts durch und suchst nach einem \ - damit wirst Du immer den letzten Pfadanteil abschneiden - entweder einen Dateinamen, oder ein Verzeichnis!
Ausserdem endet danach Dein Pfad mit einem \ - das dürfte für DEFAULT und PATH aber (wahrscheinlich) nicht richtig sein, oder?
Viele Grüße,
Martin
so wie ich das sehen, scheint Deine Methodik zum Abschneiden eines Files nicht schlüssig zu sein?
Du gehst von rechts durch und suchst nach einem \ - damit wirst Du immer den letzten Pfadanteil abschneiden - entweder einen Dateinamen, oder ein Verzeichnis!
Ausserdem endet danach Dein Pfad mit einem \ - das dürfte für DEFAULT und PATH aber (wahrscheinlich) nicht richtig sein, oder?
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.
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Martin,
wenn ich in der Anwendung, in der die Datenbank genutzt werden soll, das Verzeichnis mit MsgBox() anzeige, sind die Einstellungen korrekt !
wenn ich in der Anwendung, in der die Datenbank genutzt werden soll, das Verzeichnis mit MsgBox() anzeige, sind die Einstellungen korrekt !
Trotzdem wird die falsche Datenbank geöffnet. Muß ich irgendwie ein "reset" machen ? Welchen Pfad benutzt der Befehl DbUseArea() eigentlicht ?cPfad := CurDrive()+ ":\"+CurDir(CurDrive()) + "\"
MsgBox(cPfad )
IF ! OpenDb("em_ein","em_ein",.T.,.F.)
quit
ELSE
SET INDEX TO e_stnr,e_name,e_tnr,e_mnr,e_tot
ENDIF
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Lutz.
DbUseArea() greift zuerst auf das SET DEFAULT-Verzeichnis zu und dann auf SET PATH. Da Du offenbar eine eigene Funktion "OpenDb" geschrieben hast, wäre es, sofern diese Funktion immer bei Dateiöffnungen benutzt wird, der leichteste Weg, dort den Pfad bei DbUseArea einfach mit anzugeben. Natürlich bei OrdListAdd nicht vergessen!
In der Mehrmandantenversion unserer Software steht SET DEFAULT immer auf dem Verzeichnis, in dem sich die Datenbank befindet, und SET PATH zeigt auf den aktuellen Mandanten-Unterordner. Auf diese Art können sich die Kunden - weitgehend - aussuchen, welche Tabellen mandantenübergreifend zur Verfügung stehen sollen, da zuerst immer im SET DEFAULT-Verzeichnis gesucht wird. Die Dateien werden ohne Pfadangabe geöffnet, aufpassen muß man in dieser Situation nur beim Reindexieren. Dafür frage ich über DbInfo(DBO_FILENAME) den kompletten Namen der geöffneten Tabelle - mit Pfad - ab.
DbUseArea() greift zuerst auf das SET DEFAULT-Verzeichnis zu und dann auf SET PATH. Da Du offenbar eine eigene Funktion "OpenDb" geschrieben hast, wäre es, sofern diese Funktion immer bei Dateiöffnungen benutzt wird, der leichteste Weg, dort den Pfad bei DbUseArea einfach mit anzugeben. Natürlich bei OrdListAdd nicht vergessen!
In der Mehrmandantenversion unserer Software steht SET DEFAULT immer auf dem Verzeichnis, in dem sich die Datenbank befindet, und SET PATH zeigt auf den aktuellen Mandanten-Unterordner. Auf diese Art können sich die Kunden - weitgehend - aussuchen, welche Tabellen mandantenübergreifend zur Verfügung stehen sollen, da zuerst immer im SET DEFAULT-Verzeichnis gesucht wird. Die Dateien werden ohne Pfadangabe geöffnet, aufpassen muß man in dieser Situation nur beim Reindexieren. Dafür frage ich über DbInfo(DBO_FILENAME) den kompletten Namen der geöffneten Tabelle - mit Pfad - ab.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
ohne Angabe von dem default Verzeichnis, wird immer das aktuelle benutzt. Ich nutze immer die direkte Angabe ...
zu beachten ist auch, dass einige Funktionen das Standardverzeichnis ändern, z.B. die Dateiauswahl - wenn ich mich recht erinnere.
Deshalb habe ich diese in eigene Funktionen gekapselt und setzte das Verzeichnis zurück.
ohne Angabe von dem default Verzeichnis, wird immer das aktuelle benutzt. Ich nutze immer die direkte Angabe ...
Code: Alles auswählen
cPfad := "c:\..." oder auch relativ zum eigenen ".\"
cFile := "Kunde" // ohne .DBF, da meine Indexdatei genauso heist.
use (cPfad+cFile) ...
if neterr()
... Fehlerbehandlung
else
set index to (cPfad+cFile)
Deshalb habe ich diese in eigene Funktionen gekapselt und setzte das Verzeichnis zurück.
Gruß
Hubert
Hubert
Hallo Lutz,
für "Dateiarbeit" nutze ich folgende Funktionen...
viel Spass
Siggi
für "Dateiarbeit" nutze ich folgende Funktionen...
Code: Alles auswählen
*************************
FUNCTION AppPath()
*************************
// liefert den Programmpath
return ( FPATH(AppName(.t.),1) )
**********************
FUNCTION FPATH (cDat, nNr)
**********************
/* zerlegt cDat in aRet:={ Path, Name, Extension, , , , , WinDateiname, HTML-Dateiname}
* if nNr in [1, 2, 3] dann wir aRet[nNr] als String geliefert
* 15.10.2006 if nNr = 6 aus .\HTML\ wird AppPath()+\HTML\
* 25.06.2003 if nNr = 4 .or. 23 dann aRet= 'Name+"."+ Extension'
* 25.07.2003 if nNr = 5 .or. 12 dann aRet= 'LW + Name'
* 20.01.2004 if nNr = 8 '"' + "C:\\Eigene Dateien\\Handbuch.doc" + '"' Lange Dateinamen
* 09.03.2006 if nNr = 9 Aufbereitung für Browser und HTML-Seiten "///c:/xbase/source/WinHansa/losansky.png"
*/
LOCAL aRet:={"", "", "", "", "", "", "", "",""}, nPos:=0, cFile:=cDat
LOCAL aT:={}
cDat:=alltrim(cDat)
if nNr=6
// Parameterdatei .\HTML\ manche Programme brauchen c:\xbase\source\pkonto\html\
if substr(cDat, 1, 2)= ".\"
cDat:= AppPath()+substr(cDat, 3)
endif
aRet[6] := cDat
endif
if nNr=23; nNr:=4; endif
if nNr=12; nNr:=5; endif
if nNr=8 // Dateinamen mit Leer- und Sonderzeichen
aRet[8]:= StrTran (cDat, "/", "\")
if "\\" $ aRet[8]
// 21.09.2004 wegen \\server\freigabe
aRet[8]:= '"' +ConvToAnsiCP(aRet[8]) + '"'
else
aRet[8]:= '"' +ConvToAnsiCP(StrTran (aRet[8], "\", "\\")) + '"'
endif
endif
if nNr=9 // für HTML
aRet[9]:= StrTran (cDat, "\", "/")
if substr(aRet[9], 1, 1 )#"/"
aRet[9]:= "///"+aRet[9]
endif
endif
if (nPos:=rat("\", cDat) ) # 0
if nPos==len(cDat) // keine Datei nur Verzeichnis
aRet[1]:=cDat
cDat:=""
else
aRet[1]:=subst(cDat, 1, nPos)
cDat:=substr (cDat, nPos+1, 200) // Path abschneiden
endif
endif
if (nPos:=rat(".", cDat) ) # 0
aRet[3] :=substr (cDat, nPos+1,200) // Extension
cDat:= substr(cDat, 1, nPos-1)
endif
aRet[2]:=cDat // der Rest sollte Dateiname sein
aRet[4]:=aRet[2]+iif(empty(aRet[3]), "", "."+aRet[3])
aRet[5]:=aRet[1]+aRet[2]
return (iif(nNr#NIL, aRet[nNr], aRet) )
*****************
FUNCTION ISDIR (cPath, bNeu)
*****************
// 24.01.2006 fehlende Verzeichnisse werden ohne Nachfrage angelegt
// 05.12.2005 wechselt zu Verzeichnis isdir:= ISDIR(".\HTML\") und giebt das "alte" zurück
// Laufverk und Verzeichnis kommt zurück
// bei Freigaben auf MSMÜLL klappt isdir:= CurDrive()+":\"+ CurDir() nicht !!!!
// 17.10.2006 LOCAL cDir := iif (CurDrive()="\", "", CurDrive()+":\")+ CurDir()
LOCAL cDir := iif (empty(CurDrive()), "", CurDrive()+":\")+ CurDir()
DEFAULT bNeu TO .f.
if cPath # NIL .and. ! empty(cPath)
if FExists (cPath, "D")
CurDir(cPath)
else
if bNeu
cDir:= MDIR (cPath)
CurDir(cPath)
else
MsgBox ("Das Verzeichnis [ "+cPath+" ] ist nicht zu finden... ", "IsDir ()")
endif
endif
endif
return(cDir)
*****************
FUNCTION MDIR (cDir)
*****************
* MakeDir erstellt Verzeichnis wenn nicht vorhanden
* Rückgabe Verzeichnis oder "" wenn Pech gehabt
LOCAL cRet:=""
if empty(cDir); cRet := IsDir()
else
// "/\" am Ende abschneiden
do while substr(cDir, len(cDir), 1) $ "/\"
cDir:=substr(cDir, 1, len(cDir)-1)
endd
cDir := FPATH (cDir, 6)
if ! FExists (cDir, "D")
RunShell ("/C MD "+cDir,,,.t.)
endif
if FExists (cDir, "D"); cRet:=cDir
else; MsgBox ("Das Verzeichnis [ "+cDir+" ] konnte nicht angelegt werden !", "MDir ()")
endif
endif
return(cRet)
Siggi
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Günter,
vielen Dank für den Source-Code. Mit dem Modul erreiche ich genau das, was ich wollte !!!!
Einen kleinen Schönheitsfehler habe ich jedoch noch: ich kann zwar mit der Variablen "ncRootItem" ein Laufwerk vorgeben, jedoch nicht ein Verzeichnis. Somit lande ich zwangsläufig immer im Rootverzeichnis und nicht in einem gewünschten "Daten"-Verzeichnis. Mache ich da irgendetwas falsch ?
Hallo Siggi,
danke für Deinen Tipp, den ich selbstverständlich auch noch ausprobieren werde. Er erscheint mir interessant, da der Code deutlich kürzer ist als der von Günter.
An unseren fleißigen Forums-Moderator Martin habe ich noch die Frage, ob es nicht irgendwo eine Stelle für "Downloads" gibt, in der man solche genialen Modul-Lösungen wie die von Günter ("BrowseFolder") und Hubert ("HBPrint") einstellen und für Forums-Mitglieder downloaden kann ?
Gruß an alle
Lutz
vielen Dank für den Source-Code. Mit dem Modul erreiche ich genau das, was ich wollte !!!!
Einen kleinen Schönheitsfehler habe ich jedoch noch: ich kann zwar mit der Variablen "ncRootItem" ein Laufwerk vorgeben, jedoch nicht ein Verzeichnis. Somit lande ich zwangsläufig immer im Rootverzeichnis und nicht in einem gewünschten "Daten"-Verzeichnis. Mache ich da irgendetwas falsch ?
Hallo Siggi,
danke für Deinen Tipp, den ich selbstverständlich auch noch ausprobieren werde. Er erscheint mir interessant, da der Code deutlich kürzer ist als der von Günter.
An unseren fleißigen Forums-Moderator Martin habe ich noch die Frage, ob es nicht irgendwo eine Stelle für "Downloads" gibt, in der man solche genialen Modul-Lösungen wie die von Günter ("BrowseFolder") und Hubert ("HBPrint") einstellen und für Forums-Mitglieder downloaden kann ?
Gruß an alle
Lutz
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Lutz,
das Forum selbst ist zur Zeit nicht in der Lage Uploads/Downloads zu verwalten. Unter 'Links...' kann man aber - wie sonst auch - auf eigenen Webspace verlinken, was für komplette Sachen wie meine Druckerklasse am Besten ist. Jeder Anwender weiß, dass dort immer die neuesten Versionen stehen.
Falls jemand keinen Webspace hat, kann er eine ZIP an mich senden und ich stelle diese auf meinen Webserver. Dann kann man darauf verlinken.
das Forum selbst ist zur Zeit nicht in der Lage Uploads/Downloads zu verwalten. Unter 'Links...' kann man aber - wie sonst auch - auf eigenen Webspace verlinken, was für komplette Sachen wie meine Druckerklasse am Besten ist. Jeder Anwender weiß, dass dort immer die neuesten Versionen stehen.
Falls jemand keinen Webspace hat, kann er eine ZIP an mich senden und ich stelle diese auf meinen Webserver. Dann kann man darauf verlinken.
Gruß
Hubert
Hubert
- 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 Lutz,
vielen Dank für die Blumen
Wie Hubert bereits schrieb, ist es derzeit noch nicht möglich.
Mit der neuen Boardversion geht sowas. Diese ist derzeit jedoch noch in der Betaphase (jedoch schon "feature frozen", es werden also nur noch Fehler bereinigt). Wann sie kommt, steht in den Sternen. Sicherlich nicht vor Mitte/Ende nächsten Jahres - denke ich mal...
Viele Grüße,
Martin
vielen Dank für die Blumen
Wie Hubert bereits schrieb, ist es derzeit noch nicht möglich.
Mit der neuen Boardversion geht sowas. Diese ist derzeit jedoch noch in der Betaphase (jedoch schon "feature frozen", es werden also nur noch Fehler bereinigt). Wann sie kommt, steht in den Sternen. Sicherlich nicht vor Mitte/Ende nächsten Jahres - denke ich mal...
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.
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Hallo Lutz,
@Hubert:
Hallo Hubert,
darf ich nochmal (zum letzten Mal, versprochen! Mein Webspace ist in Arbeit.) auf dein freundliches Hosting-Angebot zurückkommen
Viele Grüße,
Günter
Nein, du machst nichts falsch, sondern das Modul ist nicht auf dem aktuellen Stand. Was ich dir schickte, stand so auch in der Newsgroup. Unterdessen gab es ein paar Korrekturen und Änderungen, unter anderem genau wegen dieses "Schönheitsfehlers".ich kann zwar mit der Variablen "ncRootItem" ein Laufwerk vorgeben, jedoch nicht ein Verzeichnis. Somit lande ich zwangsläufig immer im Rootverzeichnis und nicht in einem gewünschten "Daten"-Verzeichnis. Mache ich da irgendetwas falsch?
@Hubert:
Hallo Hubert,
darf ich nochmal (zum letzten Mal, versprochen! Mein Webspace ist in Arbeit.) auf dein freundliches Hosting-Angebot zurückkommen
Viele Grüße,
Günter
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9373
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Am Rande:
Es gibt für die im Einsatz befindliche phpBB-Version (das ist die Software, die dem Forum zugrundeliegt) zwar sogenannte "Mods", die Dateianhänge und Uploads erlauben, aber erstens ist die Inbetriebnahme von Mods durchaus anstrengend und zweitens wird es derlei in der kommenden phpBB-Version 3 standardmäßig geben. Die befindet sich in der Betaphase und wird irgendwann 2007 zur Verfügung stehen - und dann auch eingesetzt.
Es gibt für die im Einsatz befindliche phpBB-Version (das ist die Software, die dem Forum zugrundeliegt) zwar sogenannte "Mods", die Dateianhänge und Uploads erlauben, aber erstens ist die Inbetriebnahme von Mods durchaus anstrengend und zweitens wird es derlei in der kommenden phpBB-Version 3 standardmäßig geben. Die befindet sich in der Betaphase und wird irgendwann 2007 zur Verfügung stehen - und dann auch eingesetzt.
Herzlich,
Tom
Tom
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Günter,
wenn Du bei Hubert jetzt die zip-Datei zum Download zur Verfügung stellen möchtest, was ich ja sehr begrüße, wird es dann die neue Version sein, die Du bereits erwähnt hattest:
Gruß
Lutz
wenn Du bei Hubert jetzt die zip-Datei zum Download zur Verfügung stellen möchtest, was ich ja sehr begrüße, wird es dann die neue Version sein, die Du bereits erwähnt hattest:
Auch mit der jetzigen kann ich sehr gut leben, aber die oben angedeutete wäre das i-Tüpfelchen.Nein, du machst nichts falsch, sondern das Modul ist nicht auf dem aktuellen Stand. Was ich dir schickte, stand so auch in der Newsgroup. Unterdessen gab es ein paar Korrekturen und Änderungen, unter anderem genau wegen dieses "Schönheitsfehlers".
Gruß
Lutz
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Günter, haollo Hubert,
nachdem Hubert ja die Zip-Datei auf seiner HP zur Verfügung gestellt hat, habe ich es gleich ausprobiert.
Von meiner Sicht aus kann ich nur sagen: SUPER !!!
In diesem Zusammenhang habe ich noch eine Frage:
wenn ich den Befehl SET DEFAULT TO cPfad setze, ist dieser nur wirksam, wenn ich es in der Main-Procedure machen. Ein Verzeichnis-Wechsel aus einem "Unterprogramm" ist bei mir nicht möglich. Ich habe auch schon versucht, die DBF's unter Angabe des neuen Pfades zu öffnen, erhalte aber immer den vorherigen, alten Datenbestand. Was mache ich falsch ?
Gruß
Lutz
nachdem Hubert ja die Zip-Datei auf seiner HP zur Verfügung gestellt hat, habe ich es gleich ausprobiert.
Von meiner Sicht aus kann ich nur sagen: SUPER !!!
In diesem Zusammenhang habe ich noch eine Frage:
wenn ich den Befehl SET DEFAULT TO cPfad setze, ist dieser nur wirksam, wenn ich es in der Main-Procedure machen. Ein Verzeichnis-Wechsel aus einem "Unterprogramm" ist bei mir nicht möglich. Ich habe auch schon versucht, die DBF's unter Angabe des neuen Pfades zu öffnen, erhalte aber immer den vorherigen, alten Datenbestand. Was mache ich falsch ?
Gruß
Lutz
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
eigentlich müsste es mit set default to immer funktionieren ...
Versuche mal mit \ und ohne \ hinten am Pfad.
Aber ich nutze grundsätzlich immer vollständige Namen beim USE, dann ist man sicher !
Das geht immer und ist sicher ... na ja, man könnte noch mit fExist() prüfen ob die Datei überhaupt da ist
eigentlich müsste es mit set default to immer funktionieren ...
Versuche mal mit \ und ohne \ hinten am Pfad.
Aber ich nutze grundsätzlich immer vollständige Namen beim USE, dann ist man sicher !
Code: Alles auswählen
cPfad := "c:\Temp\"
cFile := "Test" // ohne DBF, dann kann man sie auch für die Indexe nutzen
use (cPfad+cFile) ...
if neterr()...
Das geht immer und ist sicher ... na ja, man könnte noch mit fExist() prüfen ob die Datei überhaupt da ist
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
- Lutz Rübe
- Rekursionen-Architekt
- Beiträge: 144
- Registriert: Mi, 02. Aug 2006 18:13
- Wohnort: 24536 Neumünster
- Danksagung erhalten: 6 Mal
- Kontaktdaten:
Hallo Hubert,
mit der Pfad-Angabe, wie Du sie gemacht hast, habe ich es schon mal probiert, bin aber nicht wirklich weitergekommen.
hallo Günter,
mit Threads habe ich (noch) keine Erfahrung und setze sie demnach nicht bewußt ein. Es kann also nur sein, daß die Module, die ich einsetze (auf der Basis von MDIDEMO) zusätzliche Threads aufrufen.
Wie kann ich das prüfen ?
Gruß
Lutz
mit der Pfad-Angabe, wie Du sie gemacht hast, habe ich es schon mal probiert, bin aber nicht wirklich weitergekommen.
hallo Günter,
mit Threads habe ich (noch) keine Erfahrung und setze sie demnach nicht bewußt ein. Es kann also nur sein, daß die Module, die ich einsetze (auf der Basis von MDIDEMO) zusätzliche Threads aufrufen.
Wie kann ich das prüfen ?
Gruß
Lutz
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Hallo Lutz,
Alaskas Original-MDIDemo verwendet jedenfalls laut Textsuche keine zusätzlichen Threads.
Nutzt du vielleicht in deinem Programm ActiveX? Soweit ich weiß, startet Xbase++ dann einen zusätzlichen Thread für eigene Zwecke.
Per Programm kannst du mit dem Ausdruck (ThreadId() = 1) feststellen, ob das Program gerade im Hauptthread läuft oder nicht.
Gruß
Günter
Alaskas Original-MDIDemo verwendet jedenfalls laut Textsuche keine zusätzlichen Threads.
Nutzt du vielleicht in deinem Programm ActiveX? Soweit ich weiß, startet Xbase++ dann einen zusätzlichen Thread für eigene Zwecke.
Per Programm kannst du mit dem Ausdruck (ThreadId() = 1) feststellen, ob das Program gerade im Hauptthread läuft oder nicht.
Gruß
Günter