[PB 4 F] Prototype & Strings (erledigt)

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

[PB 4 F] Prototype & Strings (erledigt)

Beitrag 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$
Zuletzt geändert von edel am 10.05.2006 23:08, insgesamt 1-mal geändert.
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Wieso schreibst Du da

Code: Alles auswählen

*this\...
Lass das einfach weg und schreib

Code: Alles auswählen

ExamineDir(Path + Dir)
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)
Zuletzt geändert von real am 10.05.2006 18:11, insgesamt 1-mal geändert.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 ?
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Danke , aber auf ein "Interface" moechte ich verzichten.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Hab ein .s bei prototyp vergessen ...
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

@hallodri: Läuft das mit EBP eigentlich noch mit der 4.0 Final?
Optimismus ist ein Mangel an Information.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 ;-)
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Schade, ich hätte sonst deinen Präcompiler benutzt.
Optimismus ist ein Mangel an Information.
Gesperrt