Toon posts:

dir structuren in VB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wellicht kan imand me helpen met het volgende probleempje. Ik heb een routine gemaak om uitgebreide directory structuren aan te maken. hieronder een zeer vereenvoudigde uitvoering hiervan. (NIET METEEN RUNNEN EERST LEZEN)
code:
1
2
3
4
5
6
7
Sub voorbeeld()
projnumber = "12345678"   ' var defineren
projname = "naam van klant"     ' var defineren
totaldirname = projnumber & " " & projname  'dir naam samenstellen
pathname = "C:\win98\temp\" & totaldirname & "\"  'path naam maken
MkDir pathname'dir maken
End Sub

Resultaat:
code:
1
C:\win98\temp\12345678 naam van klant\

Lijkt mij voorzich spreken. De variabelen worden uiteraard normaal via dialogsboxes toegekend. Nu is het voor gekomen dat een gebruiker geen projname heeft ingevuld.
code:
1
2
3
4
5
6
7
Sub voorbeeld()
projnumber = "12345678"
projname = ""
totaldirname = projnumber & " " & projname
pathname = "C:\win98\temp\" & totaldirname & "\"
MkDir pathname
End Sub

Resultaat (let op de spatie)
code:
1
C:\win98\temp\12345678 \

Nu heb ik de routine wel aangepast om dit te voorkomen. Maar heeft iemand enig idee waarom windows het niet toelaat om directorynaam met een spatie te eindigen en VB wel?(lijkt mij een bugje) En tweede vraag hoe krijg ik die vervelende dir's weer weg.

Edit: code-tags toegevoegd.

Verwijderd

volgens mij laat windows het WEL toe . . .

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 07-10-2025
Windohoos laat het inderdaad niet toe.

verwijderen met rmdir via shell oid ?

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 28-08 17:06

Sponge

Serious Game Developer

Vervang je het desnoods met een _, trouwens VB kan ook niet goed overweg met lange bestandsnamen hoor...moet je bijv. maar eens files gaan renamen met "NAME"... (tenzij dit gefixt is in de laatste SP...)

of de SQL string... "Program files" MOET progra~1 worden, anders komt het ook niet goed, heb er al regelmatig code voor moeten posten hier :)

Verwijderd

Topicstarter
In de routine is het probleem al helemaal opgelost. Ik check gewoon of de string leeg is. Zo ja dan wordt de variabele totaldirname anders opgebouwd. Something like this.

If projname = "" then
totaldirname = projnumber
else:
totaldirname = projnumber & " " & projname
End If

Het probleem blijft dat ik niet van die twee foute dirs meer afkom. Ik kan ze niet eens rename-n. Ik kan echt niet gaan formateren ofzo, is nl grote file server die kan echt niet even down om wat dirs te verwijderen.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Heb het hier niet getest, maar ik geloof je op je woord :P
In Windows _kan_ een dir niet met een spatie eindigen (een file ook niet voor that matter), dat VB het toelaat en als het dan ook nog werkt, is dat een lekkere bug... ben er alleen nog niet overuit of ik dat het "foutste" van Windows vind of van VB ;)

Nou heb ik overigens ooit eens via hotline een mac-file binnen gekregen (naja mp3 of zo, maar vanaf een mac), en of in die dir, of in de file, zat dus een spatie aan het eind van de naam... dus dat lijkt me dan weer een windows bug ;)

Exact expert nodig?


Verwijderd

Topicstarter
Als je een programma (VB) schrijft voor een bepaalde OS (windows in dit geval). Dan moet je er gtoch voorzorgen dat dit programma compatible is met de OS. Oke het is natuurlijk shit dat het niet kan binnen windows, maar de mensen van VB hadden deze beperking moeten inzien en daar hun prog op af moeten stemmen. De OS was er tenslotte eerder.

(Shit ik zit hier een M$ product te verdedigen, tegen een andere M$ prog maar toch)

De tekortkoming zit in windows, maar de bug zit in VB.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Ik vind dat de bug in windows zit...

Als hij niet kan omgaan met bestanden met een spatie op het einde, moet hij die file weigeren aan te maken, klaar.

Je kan niet verwachten dat ALLE apps op een OS om de vage tekortkomingen heen gaan werken. Het OS moet die ZELF zien en opvangen.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Het probleem is volgens mij gewoon dat VB windows gewoon bypassed in dit verhaal. Windows laat het namelijk niet toe. Probeer het maar.

Verwijderd

Topicstarter
verwijderen met rmdir via shell oid ?
Pkouwer: Door alle drukte er omheen gewoon over dit kleine regeltje heen gelezen. Werk prima thanx man.
Pagina: 1