Seite 1 von 2

Aktuelles Directory Ermitteln!

Verfasst: 29.08.2005 22:52
von al90

Code: Alles auswählen


; Ermittelt das Aktuell gesetzte Verzeichnis!

Procedure.s GetCurrentDir()
buflen=#MAX_PATH
a$=Space(buflen)
l=GetCurrentDirectory_(buflen,@a$)
d$=PeekS(@a$,l)
If Right(d$,1)<>"\":d$+"\":EndIf
ProcedureReturn d$
EndProcedure

currentdir$=GetCurrentDir()
Debug currentdir$

Verfasst: 29.08.2005 22:55
von Hroudtwolf
Warum hast du den Stringbuffer auf 2 KB gesetzt? Das ist viel zu hoch.
250-300 sollten reichen.

Verfasst: 29.08.2005 23:03
von al90
Nur zur sicherheit. Klar, ist normalerweise viel zu hoch aber 2KB haben
selbst die ältesten Rechner der Welt noch. :mrgreen:

Verfasst: 29.08.2005 23:15
von ts-soft
Dafür gibts aber #MAX_PATH :wink: (sind 260)

Verfasst: 29.08.2005 23:24
von al90
Na gut ich werd's bei zeiten anpassen bevor man mich noch lyncht. :lol:

Verfasst: 29.08.2005 23:35
von ts-soft
Ich habs mal ein bissel um unnötige Umwandlungen gekürzt, ich hoffe Du bist nicht böse, ist ja nur zum lernen:

Code: Alles auswählen

; Ermittelt das Aktuell gesetzte Verzeichnis!

Procedure.s GetCurrentDir()
buflen=#MAX_PATH
a$=Space(buflen)
GetCurrentDirectory_(buflen,@a$)
If Right(a$,1)<>"\":a$+"\":EndIf
ProcedureReturn a$
EndProcedure

currentdir$=GetCurrentDir()
Debug currentdir$

Verfasst: 30.08.2005 00:02
von al90
Nö kein problem, hab's ja eh als PD freigegeben. :wink:

Verfasst: 30.08.2005 10:00
von Agent
Hey al90.

Warum erfindest du das Rad neu? All die Proceduren die Du zuletzt gepostet hast gibts alle schon....Wer sucht der findet. Z.t. auch im Codearchiv...

Verfasst: 30.08.2005 10:03
von ts-soft
Und wenn Du die größe des erforderlichen Buffers nicht kennst, kann man diesen oft ermitteln und zwar mit derselben Funktion, durch Übergabe von #NULL

Code: Alles auswählen

Procedure.s GetCurrentDir()
  buflen=GetCurrentDirectory_(#Null,@a$); ermitteln des erforderlichen Buffers, deswegen #NULL
  a$=Space(buflen)
  GetCurrentDirectory_(buflen,@a$); zweiter Aufruf mit erforderlich Buffer
  If Right(a$,1)<>"\":a$+"\":EndIf
  ProcedureReturn a$
EndProcedure

currentdir$=GetCurrentDir()
Debug currentdir$

Verfasst: 30.08.2005 20:42
von al90
Agent hat geschrieben:Hey al90.

All die Proceduren die Du zuletzt gepostet hast gibts alle schon....Wer sucht der findet. Z.t. auch im Codearchiv...
Bist Du dir da sicher ?