ich hab´ hier mal ´n kleines PB-Prg zur Anzeige von nummerischen PB-Konstanten:
1. Konstanten in jaPBe, PB-Editor oder sonstwo markieren (auch über mehrere Zeilen,
kann auch andern Kram´s oder Notizen enthalten) und via [Strg] + [C] in Zwischen=
Ablage ablegen
2. dieses Prg starten: die ZwischenAblage wird eingelesen, alle PB-Konstanten rausge=
fischt und es wird in der ZwischenAblage ein PB-Prg. generiert zur Anzeige aller
gefundenen Konstanten.
3. im leeren PB-Editor oder jaPBe/neu ZwischenAblage abrufen via [Strg] + [V]: das
generierte Prg erscheint.
4. Prg. mit Debugger starten: die Konstanten sowie dessen nummerische Werte werden im
Debugger-Fenster angezeigt und auch in der ZwischenAblage hinterlegt.
5. falls erforderlich: in irgendeinem TextEditor (z.B. NotePad) kann die Debugger-An=
zeige mittels ZwischenAblage (nochmals [Strg] + [V]) eingebettet werden...
Besonders für PB-WerkzeugPrg´s und für API-ParameterErforschung
dürfte das interessant sein...
Code: Alles auswählen
;PureBasic-QuellCode "ClipBoard_Const" mit allen ModulBody´s
;generiert durch PB_Inc2Mod Vers. 7723a am 12.10.2007, 16:40 Uhr
#Prg_Name = "ClipBoard_Vars"
#Prg_Vers = "7A12a" ;set by PB_VersUpd Vers. 7225a
;========== Begin Modul "C:\ALSTERSOFT\PUREBASIC\MODULE\WORT.PBI" ==========
;jaPBe/Procedure = Wort(@String$) - liefert nächstes Wort von String$ (bis Leerzeichen bzw. geklammert) und verkürzt String$ entsprechend
Procedure.s Wort(*WO_Param)
Global Wort_Ende$, Wort_Klammer$
Protected WO_Param$, Wort$
WO_Param$ = LTrim(PeekS(*WO_Param))
If Wort_Ende$ = ""
If Wort_Klammer$ = ""
Wort_Klammer$ = Chr(34)+Chr(39)+Chr(180)+Chr(255)
EndIf
If FindString(Wort_Klammer$,Left(WO_Param$,1),1) And WO_Param$>""
Wort_Ende$ = Left(WO_Param$,1)
WO_Param$ = Right(WO_Param$,Len(WO_Param$)-1)
Else
Wort_Ende$ = " "
EndIf
EndIf
While Left(WO_Param$,1)<>Wort_Ende$ And WO_Param$>""
Wort$ = Wort$+Left(WO_Param$,1)
WO_Param$ = Right(WO_Param$,Len(WO_Param$)-1)
Wend
Wort_Ende$ = "" : Wort_Klammer$ = ""
PokeS(*WO_Param,LTrim(Right(WO_Param$,Len(WO_Param$)-1)))
ProcedureReturn Wort$
EndProcedure
;========== Ende Modul "C:\ALSTERSOFT\PUREBASIC\MODULE\WORT.PBI" ==========
;========== Begin Modul "C:\ALSTERSOFT\PUREBASIC\MODULE\CHARCHG.PBI" ==========
;jaPBe/Procedure = CharChg(base$, such$, ersatz$) - Zeichen(ketten)-(Mehrfach-)Austausch
#CharChg_WordChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
Procedure.s CharChg (CC_Base$, CC_Such$, CC_Repl$)
Protected Base$,Pos.l
Global CharChg_Cnt.b
Global CharChg_noCase.b
Global CharChg_Word.b
CharChg_Cnt = 0
If CharChg_noCase : CC_Such$ = LCase(CC_Such$) : Base$ = LCase(CC_Base$) : CharChg_noCase = 0
Else : Base$ = CC_Base$
EndIf
If CC_Such$>""
charChg_suchen:
Pos = FindString(Base$,CC_Such$,Pos+1)
If Pos
If CharChg_Word
If FindString(#CharChg_WordChars,Mid(" "+Base$,Pos-2,1),1) Or FindString(#CharChg_WordChars,Mid(Base$+" ",Pos+1+Len(CC_Such$),1),1)
Pos+1
Goto charChg_suchen
EndIf
EndIf
CC_Base$ = Left(CC_Base$,Pos-1)+CC_Repl$+Mid(CC_Base$,Pos+Len(CC_Such$),99999)
Base$ = Left(Base$,Pos-1)+CC_Repl$+Mid(Base$,Pos+Len(CC_Such$),99999)
CharChg_Cnt = CharChg_Cnt+1
Pos+Len(CC_Repl$)-Len(CC_Such$)
Goto charChg_suchen
EndIf
EndIf
CharChg_noCase = 0 : CharChg_Word = 0
ProcedureReturn CC_Base$
EndProcedure
;========== Ende Modul "C:\ALSTERSOFT\PUREBASIC\MODULE\CHARCHG.PBI" ==========
;****************************************************************
;** MainSource **
;****************************************************************
LF$ = Chr(13)+Chr(10) ;LineFeed (^13 + ^10) definieren
out$ = ";Dieses Programm zeigt den Wert zu PB-Kontanten im Debug-Fenster an." + LF$
out$ + ";Die Anzeige wird auch in die ZwischenAblage übertragen und kann via" + LF$
out$ + ";Tasten [Strg] und [V] in einem TextEditor (z.B. jaPBe, NotePad....)" + LF$
out$ + ";übernommen werden."+LF$
out$ + LF$
Lines$ = CharChg(GetClipboardText(),Chr(10),"") ;ClipBoard-Inhalt einlesen, CR (=^13+^10) auf 1 Zeichen schrumpfen, evt. nur ^13 ?)
While Lines$>""
CR = FindString(Lines$,Chr(13),1);ZeilenUmbruch suchen
If CR ;Zeile separieren
Zeile$ = Left(Lines$,CR-1)
Lines$ = Mid(Lines$,CR+1,99999) ;emulate RIGHT$() of ANSI-BASIC
Else ;letzte Zeile
Zeile$ = Lines$
Lines$ = ""
EndIf
Pos = FindString(Zeile$,";",1) : If Pos : Zeile$=Trim(Left(Zeile$,Pos-1)) : EndIf ;REM´s raus
Zeile$ = CharChg(Zeile$,Chr(9)," ");Tab´s --> Blank´s
If Trim(Zeile$)>""
Var$ = Trim(Wort(@Zeile$)) ;Wort holen bis nächstes LeerZeichen
If Left(Var$,1)="#" ;PB-Konstante ?
out$+"Debug "+Chr(34)+Var$+" = "+Chr(34)+" + Str("+Var$+")"+LF$ ;Anzeige-Aufbau
out$+"Clip$+"+Chr(34)+Var$+" = "+Chr(34)+" + Str("+Var$+")+Chr(13)+Chr(10)"+LF$ ;ClipBoard-Aufbau
cnt+1 ;Zähler generierter Ausgabe-Zeilen
EndIf
EndIf
Wend
If cnt ;überhaupt ´ne Konstante gefunden ?
out$+"SetClipboardText(Clip$)" ;ClipBoard-Aufbau abschließen
SetClipboardText(out$) ;Ausgabe in ClipBoard speichern
MessageRequester("ZwischenAblage belegt !!!", "In der Zwischenablage befindet sich nun ein"+Chr(10)+"PB-Programm zur Anzeige von Konstanten."+Chr(10)+"Datei/neue Datei aufrufen, dort [Strg]+[V]"+Chr(10)+"eintipsen sowie [F6] !!!", #MB_OK|#MB_ICONWARNING)
Else
MessageRequester("keine Konstanten in der Zwischenablage !!!", "Dieses Programm dient dem Aufbaun eines PB-Prg´s,"+Chr(10)+"das bestimmte Konstanten sowie derren nummerischen"+Chr(10)+"Wert anzeigt. Vor dem Start dieses Prg´s müßen die an="+Chr(10)+"zuzeigenden Konstanten in die Zwischenablage eingetragen"+Chr(10)+"werden (markieren und [Strg] + [C] betätigen)", #MB_OK|#MB_ICONWARNING)
EndIf
End