shell Leerzeichen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: shell Leerzeichen

Re: shell Leerzeichen

von komma4 » Sa, 12.01.2008 10:45

geht ('einfach' zweimal schreiben):

Code: Alles auswählen

sSQL = " UPDATE ""tabelle"" SET ""gedruckt"" = " & now()
Viel Erfolg!

gelöst

von moritz » Sa, 12.01.2008 10:42

Ich wusste doch, das das gehen muß.
chr$(34) ist die Lösung. So werden die Anführungsstriche zwar in Zeichen konvertiert, aber vom Interpreter nicht ausgewertet.

sdateiname =chr$(34) & "d:\Moritz\Park Nord\Stunden\Plan Dez 2007\test.pdf" & chr$(34)
Shell("C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe", 1, " -NoRegister " & sDateiname & " -n 1")

Moritz

Re: shell Leerzeichen

von moritz » Sa, 12.01.2008 10:26

Hab ich auch schon versucht.
So dunkel hab ich in Erinnerung, daß man "-Zeichen auch in Strings übergeben kann. Ich weiß aber nicht mehr, ob das in Starbasic möglich ist.
Moritz

Re: shell Leerzeichen

von Stephan » Fr, 11.01.2008 16:58

was eben in Starbasic so nicht möglich ist
versuche doch den Parameter als Inhalt einer String-Variable zu übergeben.



Gruß
Stephan

Re: shell Leerzeichen

von moritz » Fr, 11.01.2008 15:06

Hallo Toxitom,
siw Einfügung von %20 hab ich bereits ohne Erfolgt versucht, auch alles ohne Parameter. Der Befehlsaufruf funktioniert auf der Konsole, dort allerdings mit dem Zusatz von "", was eben in Starbasic so nicht möglich ist
So sieht der korrekte Aufruf das im Dos- Fenster aus.
"C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe" -NoRegister "d:\Moritz\Park Nord\Stunden\Plan Dez 2007\test.pdf" -n 1

Und in Starbasic funktioniert das Ganze ohne "" auch, aber natürlich nur bei Pfaden ohne Leerzeichen.

Den UNO-Shellbefehl hab ich noch nicht ausprobiert.
Danke
Moritz

Re: shell Leerzeichen

von Toxitom » Do, 10.01.2008 09:09

Hey Winfried,
komma4 hat geschrieben:Die Aufbereitung der UNO-Funktion benötigt doch mehr Aufwand und Laufzeit-Ressourcen, oder?
Das ist korrekt - und wenn man nur unter Basic programmiert gebe ich dir auch recht.

Die Uno-Funktion hingegen ist flexibler (du brauchst beispielsweise nicht den korrekten Pfad des Programms zu wissen, wenn der Mime-Type im System registirert ist) , universeller (da auch in anderen Sprachen einsetzbar) und wird eher weitergepflegt. Die Basic-Funktionen nicht mehr.

Und wenn man programmiert, kann man sich doch gleich an die UNO Funktionen und ihre Erzeugung/Benutzung gewöhnen, oder nicht ;-)

Viele Grüße
Thomas

PS: der Dich natürlich beneidet - hier bei Regen und 3°C ...

Re: shell Leerzeichen

von komma4 » Mi, 09.01.2008 16:27

Toxitom hat geschrieben:Auch könntest du den UNO-Shellbefehl (execute() - im Service com.sun.star.system.SystemShellExecute - ausprobieren - der ist eigentlich immer vorzuziehen :-)
Warum?
Ich würde die Laufzeitfunktion shell() vorziehen -wenn sie bei der Aufgabe funktioniert.
Die Aufbereitung der UNO-Funktion benötigt doch mehr Aufwand und Laufzeit-Ressourcen, oder?


[immer noch im Urlaub, grüssend aus Koh Kho Khao, Thailand: aktuell 28°C :-> ]

Re: shell Leerzeichen

von Toxitom » Mi, 09.01.2008 13:40

Hey Moritz,
bei auftretenden Leerzeichen sollte man an sich immer die URL-Notation verwenden - dort werden Leerzeichen maskiert (mit %20). Das kannst du auch manuell machen.
Ich würde alles durchprobieren, auch den direkten Aufruf ohne Parameter, also in der Form:
shell(""C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe -NoRegister d:\Moritz\\Park Nord\Stunden\Plan Dez 2007\test.pdf -n 1")

Im Übrigen scheint mir der Aufruf an sich schon "merkwürdig. Schalter vor und hinter dem als Pfad übergebene Parameter? Wie soll das Programm das unterscheiden, das mit den Leerzeichen. Der Aufruf funktioniert doch so sicher nicht in der Eingabeaufforderung, also der Shell? Oder?

Auch könntest du den UNO-Shellbefehl (execute() - im Service com.sun.star.system.SystemShellExecute - ausprobieren - der ist eigentlich immer vorzuziehen :-)

Viele Grüße
Thomas

Re: shell Leerzeichen

von moritz » Mi, 09.01.2008 13:22

Nein, der ist nur hier drin, weil ich einen längeren Pfad gekürzt habe.
Moritz

Re: shell Leerzeichen

von gschuckar » Mi, 09.01.2008 08:40

Hallo Moritz
moritz hat geschrieben: Shell("C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe", 1, "-NoRegister d:\Moritz\\Park Nord\Stunden\Plan Dez 2007\test.pdf -n 1")
Könnte es sein, das nicht das Leerzeichen, sondern der doppelte backslash zwischen Moritz und Park die Ursache des nicht Funktionierens ist?
Gruß
Gerd

shell Leerzeichen

von moritz » Di, 08.01.2008 13:52

Hallo,
weiß jemand zufällig, wie man dem Shellaufruf Parameter mit Leerzeichen übergeben kann?
Das Programm Foxit Reader wird in meinem Fall korrekt gestartet. Der Aufruf der Datei scheitert jedoch an den Leerzeichen im Pfad.

Shell("C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe", 1, "-NoRegister d:\Moritz\\Park Nord\Stunden\Plan Dez 2007\test.pdf -n 1")
(OO 2.3.1, XP)
Vielen Dank
Moritz

Nach oben