Seite 1 von 1
[PB 4 F] Prototype & Strings (erledigt)
Verfasst: 10.05.2006 17:50
von edel
Morgen.
Wenn ich eine Funktion aufrufe und in diesem Aufruf einen String an einen
anderen haenge (Beispiel weiter unten) bekomme ich folgende Ausgabe :
[quote]
C:\Programme\PureBasic\Catalogs\
C:\Programme\PureBasic\Catalogs\Deutsch\
US1ÀPPPPP‹T$
Verfasst: 10.05.2006 18:07
von real
Wieso schreibst Du da
Lass das einfach weg und schreib
und dann klappt's auch!
PB ist keine objektorientierte Programmiersprache. Also brauchst Du kein Objekt mit anzugeben, wenn Du eine Prozedur (und KEINE Methode) aufrufst.
Code: Alles auswählen
Procedure ExamineDir(Path.s)
Static OFFSET
If Not Right(Path,1) = "\" : Path + "\" : EndIf
hDir = ExamineDirectory(#PB_Any,Path,"*.*")
If hDir
While NextDirectoryEntry(hDir)
If DirectoryEntryType(hDir) = #PB_DirectoryEntry_Directory
Dir.s = DirectoryEntryName(hDir)
If Dir = "." Or Dir = ".." : Continue : EndIf
Debug Space(offset)+Path+Dir
OFFSET + 5
ExamineDir(Path+Dir)
OFFSET - 5
EndIf
Wend
EndIf
EndProcedure
ExamineDir(#PB_Compiler_Home)
Verfasst: 10.05.2006 18:10
von edel
Es ist doch voellig egal ob ich ExamineDir mit this oder ohne aufrufe, der
Sprung bleibt der gleiche, oder habe ich da etwas falsch verstanden ?
Verfasst: 10.05.2006 18:26
von mk-soft
Verfasst: 10.05.2006 18:58
von edel
Danke , aber auf ein "Interface" moechte ich verzichten.
Verfasst: 10.05.2006 23:09
von edel
Hab ein .s bei prototyp vergessen ...
Verfasst: 10.05.2006 23:13
von Hellhound66
@hallodri: Läuft das mit EBP eigentlich noch mit der 4.0 Final?
Verfasst: 10.05.2006 23:24
von edel
Code: Alles auswählen
PROTOTYPE.s ExamineDir(Path.s)
STRUCTURE TEST
ExamineDir.ExamineDir
ENDSTRUCTURE
PROCEDURE.s ExamineDir(Path.s)
PROTECTED *this.TEST
!mov [p.p_this],ebp
STATIC OFFSET
IF NOT Right(Path,1) = "\"
Path + "\"
ENDIF
hDir = ExamineDirectory(#PB_ANY,Path,"*.*")
IF hDir
WHILE NextDirectoryEntry(hDir)
IF DirectoryEntryType(hDir) = #PB_DirectoryEntry_Directory
Dir.s = DirectoryEntryName(hDir)
IF Dir = "." OR Dir = ".." : CONTINUE : ENDIF
NewPath.s = Path + Dir + "\"
DEBUG space(offset) + NewPath
OFFSET + 5
*this\ExamineDir(NewPath)
OFFSET - 5
ELSE
;debug Space(OFFSET) + DirectoryEntryName(hDir)
ENDIF
WEND
ENDIF
ENDPROCEDURE
PROCEDURE NEW()
PROTECTED *THIS.TEST = AllocateMemory(4)
*THIS\ExamineDir = @ExamineDir()
PROCEDURERETURN *THIS
ENDPROCEDURE
*a.TEST = new()
*a\ExamineDir("c:\")
Und nein , ich moechte immer noch kein Interface

Verfasst: 10.05.2006 23:31
von Hellhound66
Schade, ich hätte sonst deinen Präcompiler benutzt.