Avatar billede hcm Nybegynder
13. juni 2003 - 14:12 Der er 11 kommentarer og
1 løsning

VB program og kommando-prompt

Egentlig 2 spm, 15 point til hver:

1: Jeg har lavet et lille program, som bare flytter filer fra en folder til en anden. syntaxen er prog.exe <fra dir> <til dir>. Hvordan laver man en besked i cmd-prompten  hvis syntax ikke er korrekt. Altså output til cmd-prompten.

2: Jeg har lavet det sådan, at parametrene opsplittes ved mellemrum, altså mellem fra-dir og til-dir. Problemet er så, hvis der er mellemrum i dir-navnet, ja, så virker det bare ikke...

Jeg er ikke rå til VB, så lidt eksempler ville være fint...
Avatar billede hcm Nybegynder
13. juni 2003 - 14:20 #1
Jeg er desværre ikke istand til at kommentere før mandag...
Avatar billede soreno Praktikant
13. juni 2003 - 15:28 #2
2:

Er ikke et VB problem men et Operativ System fænomen, brug:
prog.exe "c:\lang dir med mange mellemrum" "c:\andet langt dir"
Avatar billede michaelemanuel Nybegynder
13. juni 2003 - 15:53 #3
2:
Brug " omkring som i "Program Filer" så er mellemrum OK
Avatar billede michaelemanuel Nybegynder
13. juni 2003 - 15:53 #4
Sorry soreno, jeg havde ikke set dit reply
Avatar billede hcm Nybegynder
14. juni 2003 - 00:40 #5
Soreno > Selvom jeg bruger "langt dir" virker det ikke.... Den splitter stadig efter første mellemrum (såvidt jeg kan vurdere). Jeg bruger en split-kommando i VB, hvor jeg bare splitter på mellemrum.
Avatar billede soreno Praktikant
14. juni 2003 - 07:46 #6
Jeg kender stort set intet til VB. Men jeg kender C/C++ og der opsplittes parametre efter ord eller ord indlejret i "".

Prøv at poste lidt relevant kode.
Avatar billede martin_moth Mester
14. juni 2003 - 10:17 #7
1: http://www.eksperten.dk/spm/347421

2: hcm/Soreno: Man kan også splitte i VB ved fx. ":\"

Jeg vil nu mene at split-funktionen er ret uegnet til det du vil. Brug i stedet fx. Mid() og InStr() - det virker:

  MyString = "c:\lang dir med mange mellemrum c:\andet langt dir"
  Split = InStr(3, MyString, ":\") - 1
  Sti1 = Mid(MyString, 1, Split - 2)
  Sti2 = Mid(MyString, Split)

Så behøver du heller ikke bruge situationstegn :o)

Til orientering: Split (bemærk at der kan angives en delimiter):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctsplit.asp
Avatar billede hcm Nybegynder
16. juni 2003 - 08:45 #8
Martin moth > Jeg får en fejl "Argument not optional" i linien med
  Split = InStr(3, Mystring, ":\") - 1
Hvad skyldes det? Som sagt jeg er ikke nogen haj til VB...
Avatar billede hcm Nybegynder
16. juni 2003 - 11:08 #9
Ah! Har gennemskuet den!! Og jeg har fået besvaret del 2 af spm'et.
Vedr. del 1, kan jeg ikke rigtig gennemskue linket...
Jeg ønsker ikke at starte en cmd.exe fra programmet. Jeg starter programmet fra cmd.exe, og ønsker at skrive enkelte kommentarer tilbage til prompten.
Avatar billede martin_moth Mester
16. juni 2003 - 11:32 #10
I det link er vist hvordan du skriver til en kommandoprompt.

Det er ikke nødvendigvis særlig simpelt :o(
Hvis du kan leve med en anden løsning, så kompiler dit VB program til en .exe, og kør det som ethvert andet windowsprogram. Så kan du "klikke" dig frem til de mapper der skal kopieres til/fra.
Avatar billede hcm Nybegynder
16. juni 2003 - 11:52 #11
Okay, så tror jeg bare at jeg glemmer det. Ideen med programmet er, at det skal scheduleres, og dermed køre uden bruger-input. Men tak for hjælpen. Du får pointene :-)
Avatar billede martin_moth Mester
16. juni 2003 - 11:58 #12
Løsningen er i det link jeg gav. Men jeg indrømmer, at det ser kompliceret ud. Har ikke energien til at sætte mig ind i det og omskrive det så det passer til dig :o(

Men dit program virker jo nu - bortset fra, at du ikke kan sende meddelser til brugeren. Måske kunne du lave en .bat, der starter din .exe, og sender beskedder tilbage til brugeren hvis det lykkeds. Bare en - meget lidt gennemtænkt - ide.

Tak for points :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester