Datei erstellen im Netz
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Okay, lasst uns eine Liste mit möglichen Ursachen zu dieser präzisen Problembeschreibung machen. Ich übernehme die ersten tausend, dann kann jemand anderes einsteigen.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21219
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Datei erstellen im Netz
ok
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: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Datei erstellen im Netz
hi,
Ihr geht davon aus das die Fehlermeldung sich auf das "Ziel" bezieht aber wie sieht die "Quelle" aus ?
sag mal wie heisst die "Quell" Datei ? (voller Path)Rolf Ramacher hat geschrieben: ↑Mo, 31. Aug 2020 15:37 mit FCreate erhalte ich die Meldung Fehler beim Schreiben, copy to funktioniert auch nicht - Fehler 3 Pfad nicht gefunden. ist aber in der Datenbank richtig eingestellt z:\import
Ihr geht davon aus das die Fehlermeldung sich auf das "Ziel" bezieht aber wie sieht die "Quelle" aus ?
gruss by OHR
Jimmy
Jimmy
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Datei erstellen im Netz
Hab jetzt mal nachgeschaut. Das Problem trat auf Windows 7 32-Bit Systemen auf.
Der Laufwerksbuchstabe wurde nicht gefunden, daher DOS Fehler 3 bzw. File() Rückgabe .F.
Gelöst hatte ich das damals mit einer Laufwerkszuweisung
Danach trat das Problem nicht mehr auf....
Vielleicht hilft's?
Gruß Stefan
Der Laufwerksbuchstabe wurde nicht gefunden, daher DOS Fehler 3 bzw. File() Rückgabe .F.
Gelöst hatte ich das damals mit einer Laufwerkszuweisung
Code: Alles auswählen
FUNCTION SetzeNWLW(cPfad)
LOCAL cLW := ""
LOCAL aLWName := { "Z:", "Y:", "X:", "W:", "V:", "U:", "T:", "S:", "R:", "Q:", "P:", "O:", "N:", "M:", "L:", "K:", "J:", "I:", "H:", "G:", "F:", "E:", "D:" }
LOCAL nCounter := 1
FOR nCounter = 1 to 23
If GetDriveType( aLWName[ nCounter ] ) = 1
cLW := aLWName[ nCounter ]
StarteDatei( "/C START NET USE " + cLW + " " + cPfad )
* RunShell("/C START NET USE " + cLW + " " + cPfad , , .f., .F.)
Exit
Endif
Next nCounter
RETURN cLW
FUNCTION KillNWLW( cLW )
RunShell("/C START NET USE " + cLW + " /DELETE /YES" , , .f., .F.)
RETURN NIL
Vielleicht hilft's?
Gruß Stefan
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
- mini990
- 1000 working lines a day
- Beiträge: 592
- Registriert: Sa, 28. Jan 2006 9:44
- Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
- Danksagung erhalten: 1 Mal
Re: Datei erstellen im Netz
Die ist von Werner....
Und hier noch Laufwerkfunktionen:
Gruß Stefan
Code: Alles auswählen
FUNCTION StarteDatei(cDatei, cArt, cDir, cPara)
// Bsp.: StarteDatei("explorer.exe", , , "c:\windows\logs")
// Bsp.: StarteDatei("www.web.de")
// Bsp.: StarteDatei("calc.exe")
RETURN ShellExecute(NIL, if(cArt == "D", SHELL_PRINT, SHELL_OPEN), cDatei, cPara, cDir)
Code: Alles auswählen
***********************************************************************************************************************************
*** ***
*** FUNCTION GetDriveType(cDrive) ***
*** ***
*** Art des Laufwerks ermitteln ***
*** ***
*** Rückgabewerte: ***
*** "UNKNOWN" 0 The drive type cannot be determined. ***
*** "NO_ROOT_DIR" 1 The root path is invalid; for example, there is no volume mounted at the specified path. ***
*** "REMOVABLE" 2 The drive has removable media; for example, a floppy drive, thumb drive, or flash card reader. ***
*** "FIXED" 3 The drive has fixed media; for example, a hard disk drive or flash drive. ***
*** "REMOTE" 4 The drive is a remote (network) drive.
*** "CDROM" 5 The drive is a CD-ROM drive.
*** "RAMDISK" 6 The drive is a RAM disk.
* Aufruf
* GetDriveType("C:")
*
FUNCTION GetDriveType(cDrive)
LOCAL nDll,nType
nDll := DllLoad("Kernel32.dll")
IF nDll > 0
nType := DllCall(nDll,DLL_STDCALL,"GetDriveTypeA",cDrive)
DllUnload(nDll)
ENDIF
RETURN nType
*** UNC Name des Laufwerks ermitteln
*
* Rückgabe UNC-Pfad bzw. Laufwerksbuchstabe
* Aufruf:
* GetUNCName("C:")
*
FUNCTION GetUNCName(cDevice)
Local cServerName:=Space(512)
Local nLength :=512
LOCAL nLastError := 0
cDevice:=Upper(AllTrim(StrTran(cDevice,':','')))+':'
nLastError :=DllCall( "Mpr.Dll", DLL_STDCALL, "WNetGetConnectionA", @cDevice, @cServerName, @nLength )
nLength :=At(Chr(0),cServerName)
If nLength>0 //!Empty(cServerName)
cServerName:=Left(cServerName,nLength-1)
Else
cServerName:=cDevice
EndIf
Return AllTrim(cServerName)
Re: Datei erstellen im Netz
Ich hänge mich mal an, weil es irgendwie zum Thema passt:
Wie kopiert ihr Dateien aus dem Programm auf einen UNC-Pfad? Gibt es dazu eine elegante Lösung ohne RunShell()?
Gruss
Marco
Wie kopiert ihr Dateien aus dem Programm auf einen UNC-Pfad? Gibt es dazu eine elegante Lösung ohne RunShell()?
Gruss
Marco
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Hallo, Marco.
Kannst Du die Frage präzisieren? Ich habe grundsätzlich - weder bei Verwendung einer DBE, noch bei Low-Level-Dateioperationen - irgendein Problem mit UNC-Pfaden. Welches hast Du?
Kannst Du die Frage präzisieren? Ich habe grundsätzlich - weder bei Verwendung einer DBE, noch bei Low-Level-Dateioperationen - irgendein Problem mit UNC-Pfaden. Welches hast Du?
Herzlich,
Tom
Tom
Re: Datei erstellen im Netz
Es geht mir darum, beispielsweise eine Sicherung der Datenbanken auf einen UNC-Pfad zu machen. Ich verwende xClass, wobei ich mit CopyFile() Dateien beliebig kopieren kann (aber eben nur unter der Voraussetzung, dass es sich um gemappte Laufwerke handelt und nicht um einen UNC-Pfad). Aber vielleicht sehe ich auch den Wald vor lauter Bäumen nicht mehr...
Gruss
Marco
Gruss
Marco
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Bei Batchdateien ist es so, dass die Zielangaben von XCOPY oder COPY oder ROBOCOPY einfach als UNC angegeben werden können.
NUR die CMD selbst (also der Ausführungsort) muss auf einem gemappten oder lokalen Laufwerk liegen.
copy "\\server\freigabe\Datei*" "\\ziel\freigabe\zielver\*"
in Xbase selbst können alle Variablen UNC Namen im Pfad enthalten.
NUR die CMD selbst (also der Ausführungsort) muss auf einem gemappten oder lokalen Laufwerk liegen.
copy "\\server\freigabe\Datei*" "\\ziel\freigabe\zielver\*"
in Xbase selbst können alle Variablen UNC Namen im Pfad enthalten.
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Man muss da auch nix in Anführungszeichen setzen, Hubert. Das ist nur erforderlich, wenn Datei- oder Verzeichnisnamen Leerzeichen enthalten.
funktioniert.
funktioniert nicht, dafür dann das hier:
Das gleiche gilt für Low-Level-Dateifunktionen, FileCopy, CopyFile COPY TO, DbUseArea, INDEX ON usw. in Xbase++-Anwendungen, mindestens seit Version 1.9. Wenn XClass das anders macht, gibt es möglicherweise eine Plausibilitätsprüfung, die am doppelten Schrägstrich oder am fehlenden Laufwerksbezeichner mit Doppelpunkt scheitert.
Code: Alles auswählen
copy \\mydomain\data\txt\text.txt .
Code: Alles auswählen
copy \\mydomain\data\txt\schriller text.txt .
Code: Alles auswählen
copy "\\mydomain\data\txt\schriller text.txt" .
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15703
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 70 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
das weiß ich wohl, habe es aber eingefügt, da die Verzeichnisnamen (hier nur Platzhalter) ja unbekannt sind
Es ist nie falsch
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12912
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Datei erstellen im Netz
hi
zum kopieren, moven, löschen oder umbenennen von Dateien nehme ich ShfileOperation wie der Explorer
https://docs.microsoft.com/en-us/window ... operationa
es ist schade das Alaska solche Windows Sachen nicht unterstützt und man Ot4xb nutzen muss für die SHFILEOPSTRUCTA structure
https://docs.microsoft.com/en-us/window ... eopstructa
hier die Ot4xb Version von Pablo
zum kopieren, moven, löschen oder umbenennen von Dateien nehme ich ShfileOperation wie der Explorer
https://docs.microsoft.com/en-us/window ... operationa
es ist schade das Alaska solche Windows Sachen nicht unterstützt und man Ot4xb nutzen muss für die SHFILEOPSTRUCTA structure
https://docs.microsoft.com/en-us/window ... eopstructa
hier die Ot4xb Version von Pablo
gruss by OHR
Jimmy
Jimmy
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Hallo Stefan
beim compilieren wird die shellexecute angemeckert. fehlt eine include CH-Datei ?
die dll.ch ist eingebunden
beim compilieren wird die shellexecute angemeckert. fehlt eine include CH-Datei ?
die dll.ch ist eingebunden
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: Datei erstellen im Netz
Hallo, Rolf.
Ich glaube, Du tust Dir nicht unbedingt einen Gefallen, wenn Du versuchst, aus Deiner Anwendung heraus ein Laufwerk zu mappen, das eigentlich schon gemappt sein sollte (und wahrscheinlich auch ist). Sollte das gelingen, wirst Du möglicherweise Speicherorte durcheinanderbringen und/oder laufenden Applikationen die Datenbasis wegziehen. Du solltest Dir wenigstens in einem kleinen Testprogramm anschauen, was da passiert, und vielleicht bei dieser Gelegenheit in diesem kleinen Testprogramm auch einfach mal Dein Problem nachstellen, nebst ganz viel Debugging auf Deinen Datei- und Verzeichnisnamen. Ich würde immer noch halbmittelwichtige Körperteile dafür ins Feuer legen, dass wir hier eigentlich über einen Typo reden, und dass Stefans Code, mit dem man irgendwie auch eine Laufwerksfreigabe verbogen bekommt, einer kleinen Atombombe gleichkommt, die man gegen Kopfläuse einsetzt.
Ich glaube, Du tust Dir nicht unbedingt einen Gefallen, wenn Du versuchst, aus Deiner Anwendung heraus ein Laufwerk zu mappen, das eigentlich schon gemappt sein sollte (und wahrscheinlich auch ist). Sollte das gelingen, wirst Du möglicherweise Speicherorte durcheinanderbringen und/oder laufenden Applikationen die Datenbasis wegziehen. Du solltest Dir wenigstens in einem kleinen Testprogramm anschauen, was da passiert, und vielleicht bei dieser Gelegenheit in diesem kleinen Testprogramm auch einfach mal Dein Problem nachstellen, nebst ganz viel Debugging auf Deinen Datei- und Verzeichnisnamen. Ich würde immer noch halbmittelwichtige Körperteile dafür ins Feuer legen, dass wir hier eigentlich über einen Typo reden, und dass Stefans Code, mit dem man irgendwie auch eine Laufwerksfreigabe verbogen bekommt, einer kleinen Atombombe gleichkommt, die man gegen Kopfläuse einsetzt.
Herzlich,
Tom
Tom