Seite 1 von 2

Jetziges DIR auslesen

Verfasst: 10.08.2005 12:46
von Blackskyliner
Wie kann ich das verzeichniss auslesen indem sich die ausführende EXE befindet?

Verfasst: 10.08.2005 12:51
von Christi

Code: Alles auswählen

puffer.l = AllocateMemory(1024)
GetModuleFileName_(0, puffer.l, 1023)
exe.s = PeekS(puffer.l)
FreeMemory(puffer.l)

ExamineDirectory(0, GetPathPart(exe.s), "*.*")

typ.l = NextDirectoryEntry()
While typ.l
  If typ.l = 1
    Debug DirectoryEntryName()
  Else
    Debug "[" + DirectoryEntryName() + "]"
  EndIf
  typ.l = NextDirectoryEntry()
Wend

Verfasst: 10.08.2005 12:55
von Blackskyliner
Und wie kann ich in einen File schreiben?

Verfasst: 10.08.2005 12:56
von Caliban
Oder aber man lässt die Pfadangabe ganz einfach weg.

Code: Alles auswählen

ExamineDirectory(0,"","*.*") ;<---

OpenConsole()
While NextDirectoryEntry()
  PrintN( DirectoryEntryName())
Wend

Repeat: Until Inkey()

CloseConsole()

Verfasst: 10.08.2005 12:59
von Caliban
Hier das Beispiel dazu aus der PB Hilfe:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - File example file
;
;    (c) 2001 - Fantaisie Software
;
; ------------------------------------------------------------
;

MessageRequester("PureBasic", "Welcome !"+Chr(13)+"PureBasic will write a file named: PureBasicTestFile.pb", 0)

If CreateFile(0, "PureBasicTestFile.txt")
  WriteStringN("         This is a PureBasic file test")
  WriteString("Now it's on ")
  WriteString("the same line.")

  CloseFile(0)
Else
  MessageRequester("PureBasic", "Error: can't write the file", 0)
  End
EndIf

If ReadFile(0, "PureBasicTestFile.txt")

  First$ =  Trim(ReadString())
  MessageRequester("PureBasic", "Line read: "+First$, 0)
  
  CloseFile(0)
Else
  MessageRequester("PureBasic", "Error: Can't read the file", 0)
EndIf

End 

Verfasst: 10.08.2005 12:59
von Blackskyliner
jaja... manchmal kann man auch blind sein... :oops:

Verfasst: 10.08.2005 13:16
von remi_meier

Code: Alles auswählen

puffer.l = AllocateMemory(1024) 
GetModuleFileName_(0, puffer.l, 1023) 
exe.s = PeekS(puffer.l) 
FreeMemory(puffer.l) 

ExamineDirectory(0, GetPathPart(exe.s), "*.*") 

typ.l = NextDirectoryEntry() 
While typ.l 
  If typ.l = 1 
    Debug DirectoryEntryName() 
  Else 
    Debug "[" + DirectoryEntryName() + "]" 
  EndIf 
  typ.l = NextDirectoryEntry() 
Wend
<>

Code: Alles auswählen

ExamineDirectory(0,"","*.*") ;<--- 

OpenConsole() 
While NextDirectoryEntry() 
  PrintN( DirectoryEntryName()) 
Wend 

Repeat: Until Inkey() 

CloseConsole()
Nur damit das klar ist!
CurrentDirectory_() muss nicht gleich ExeDir sein!

Verfasst: 10.08.2005 13:21
von Blackskyliner
achja und nochmal ne frage... wie lese ich mehr als nur die erste zeile aus?

Verfasst: 10.08.2005 13:35
von Caliban
Meinst du jetzt wie du mehrere Zeilen aus einer Datei liest ?
Das geht so:

Code: Alles auswählen

While eof(#Datei) = 0
   ReadString()
Wend

Verfasst: 10.08.2005 13:38
von Blackskyliner
ahh.... danke... das ist seltsam dokumentiert eigentlich müsste man bei der eof() funktion noch in der doc mit sagen das der automatisch auf de nächste zeile springt...

naja...

Danke habt mir alle weitergeholfen!
:allright: :allright: