/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
app.path
Fra : Thomas Jørgensen


Dato : 04-06-02 19:42

Hej NG
lige et spørgsmål fra nybegynder.
Jeg vælger et drev fra listdirbox og vil så trykke på en commando-knap og
få kopieret indholdet af det bibliotek jeg kører prg. fra over i en mappe
(mappen eksisterer altid). Jeg har prøvet følgende, men den finder ingen
filer selvom der er filer i mappen hvor jeg kører prg. fra. (grunden til jeg
gerne vil bruge app.path er at prg. skal køres fra cd - og nogen gange
hedder det jo D andre gange E osv.)
Shell "xcopy & app.path\da*.* Drive1.Drive\X\*.* /C /I /Y"
vh
thomas j.



 
 
Bjarke Walling Peter~ (04-06-2002)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 04-06-02 21:37

Thomas Jørgensen skrev:
> Hej NG
> lige et spørgsmål fra nybegynder.
> Jeg vælger et drev fra listdirbox og vil så trykke på en commando-knap og
> få kopieret indholdet af det bibliotek jeg kører prg. fra over i en mappe
> (mappen eksisterer altid). Jeg har prøvet følgende, men den finder ingen
> filer selvom der er filer i mappen hvor jeg kører prg. fra. (grunden til jeg
> gerne vil bruge app.path er at prg. skal køres fra cd - og nogen gange
> hedder det jo D andre gange E osv.)
> Shell "xcopy & app.path\da*.* Drive1.Drive\X\*.* /C /I /Y"
> vh
> thomas j.

Hej Thomas.

Der er et par småfejl i sætningen. I øvrigt vil App.Path returnere
"C:\mappe" (når programmet ligger der), men "C:\" hvis programmet ligger
i C-drevets rod. Som du evt. har lagt mærke til er der det ene sted en
backslash til slut, men ikke det andet. Men det kan man, som mange andre
ting, komme uden om. Den korrekte kode burde da være:

Dim Path As String
Path = App.Path
If Right$(" " & Path, 1) <> "\" Then
' Ser efter at der IKKE er en backslash til slut
Path = Path & "\" ' ... og tilføjer den i så fald
End If
Shell "xcopy """ & Path & "da*.*"" """ & Drive1.Drive & "\X\*.*"" /C /I
/Y"

Især den sidste sætning ser noget mere forvirrende ud, men nu burde det
virke. Du må huske at en streng starter og slutter med citationstegn -
dobbeltcitationstegn inden i en streng bliver omformet til et enkelt
citationstegn i strengen. I dit tilfælde vil alt hvad du har skrevet
efter Shell derfor blive opfattet som én streng, der bliver sendt til
DOS-kommandofortolkeren. Det der bliver sendt er altså: xcopy &
app.path\da*.* Drive1.Drive\X\*.* /C /I /Y. ... og xcopy vil ikke kunne
finde ud af at kopiere & til app.path\da*.*. Den kode jeg sendte dig vil
derimod sende følgende til DOS (hvis f.eks. Path = C:\min mappe\ og
Drive1.Drive= D:) ... xcopy "C:\min mappe\" "D:\X\*.*" /C /I /Y ...
læg mærke til at der er citationstegn rundt om C:\min mappe og D:\X\*.*
.... hvis der ikke var det, ville xcopy jo tro at den skulle kopiere fra
C:\min til mappe\.

Jeg håber du er med - ellers må du spørge igen. Måske du evt. skulle
læse en bog eller toturial om Visual Basic. Desværre har jeg ikke nogen
gode forslag til en sådan.

Mvh. Bjarke


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Thomas Jørgensen (05-06-2002)
Kommentar
Fra : Thomas Jørgensen


Dato : 05-06-02 17:14

Hej Bjarne
Takker for hjælpen. Det virker
vh thomas

"Bjarke Walling Petersen" <bwp@bwp.dk> skrev i en meddelelse
news:b0fc6574c732fe15d7e718f554b15be4.42843@mygate.mailgate.org...
>
> Hej Thomas.
>
> Der er et par småfejl i sætningen. I øvrigt vil App.Path returnere
> "C:\mappe" (når programmet ligger der), men "C:\" hvis programmet ligger
> i C-drevets rod. Som du evt. har lagt mærke til er der det ene sted en
> backslash til slut, men ikke det andet. Men det kan man, som mange andre
> ting, komme uden om. Den korrekte kode burde da være:
>
> Dim Path As String
> Path = App.Path
> If Right$(" " & Path, 1) <> "\" Then
> ' Ser efter at der IKKE er en backslash til slut
> Path = Path & "\" ' ... og tilføjer den i så fald
> End If
> Shell "xcopy """ & Path & "da*.*"" """ & Drive1.Drive & "\X\*.*"" /C /I
> /Y"
>
> Især den sidste sætning ser noget mere forvirrende ud, men nu burde det
> virke. Du må huske at en streng starter og slutter med citationstegn -
> dobbeltcitationstegn inden i en streng bliver omformet til et enkelt
> citationstegn i strengen. I dit tilfælde vil alt hvad du har skrevet
> efter Shell derfor blive opfattet som én streng, der bliver sendt til
> DOS-kommandofortolkeren. Det der bliver sendt er altså: xcopy &
> app.path\da*.* Drive1.Drive\X\*.* /C /I /Y. ... og xcopy vil ikke kunne
> finde ud af at kopiere & til app.path\da*.*. Den kode jeg sendte dig vil
> derimod sende følgende til DOS (hvis f.eks. Path = C:\min mappe\ og
> Drive1.Drive= D:) ... xcopy "C:\min mappe\" "D:\X\*.*" /C /I /Y ...
> læg mærke til at der er citationstegn rundt om C:\min mappe og D:\X\*.*
> ... hvis der ikke var det, ville xcopy jo tro at den skulle kopiere fra
> C:\min til mappe\.
>
> Jeg håber du er med - ellers må du spørge igen. Måske du evt. skulle
> læse en bog eller toturial om Visual Basic. Desværre har jeg ikke nogen
> gode forslag til en sådan.
>
> Mvh. Bjarke
>
>
> --
> Posted via Mailgate.ORG Server - http://www.Mailgate.ORG



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste