Jetziges DIR auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Jetziges DIR auslesen

Beitrag von Blackskyliner »

Wie kann ich das verzeichniss auslesen indem sich die ausführende EXE befindet?
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag 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
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

Und wie kann ich in einen File schreiben?
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag 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()
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag 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 
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

jaja... manchmal kann man auch blind sein... :oops:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag 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!
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag von Blackskyliner »

achja und nochmal ne frage... wie lese ich mehr als nur die erste zeile aus?
Caliban
Beiträge: 41
Registriert: 08.09.2004 08:46

Beitrag 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
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Beitrag 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:
Antworten