Bereiche
@MemPosAbs
Bei @MemPos kann ein Startwert mit angegeben werden. Das Ergebnis ist in diesem Fall
die Position der Fundstelle bezogen auf diesen Startwert.
Wer aber die Position der Fundstelle vom Beginn des Bereiches an benötigt, kann diese
Funktion einsetzen.
Proc MemPosAbs
Parameters B#,Start&,Find$
Declare Found&
Found& = @MemPos(B#,Start&,Find$)
Case Found& <> (-1) : Found& = Found& + Start&
Return Found&
EndProc
Syntax:
Position& = @MemPosAbs( Bereich#, Start&, Text$ ) 'liefert absolute Position
@Pad$
Zu kurze Strings mit Leerzeichen auffüllen
(längere Texte bleiben erhalten).
Def @PadL$(2) @If(@Len(@$(1))<@%(2)),@$(1)+@Space$(@%(2)-@Len(@$(1))),@$(1))
Def @PadR$(2) @If(@Len(@$(1))<@%(2)),@Space$(@%(2)-@Len(@$(1)))+@$(1),@$(1))
oder
Def @PadL$(2) If(Len($(1)) < %(2)),$(1)+Space$(%(2) - Len($(1))),$(1))
Def @PadR$(2) If(Len($(1)) < %(2)),Space$(%(2) - Len($(1)))+$(1),$(1))
Syntax:
NeuText$ = @PadL$( Text$, Len% ) 'linksbündig füllen
NeuText$ = @PadR$( Text$, Len% ) 'rechtsbündig füllen
Strings auffüllen
@Cut$
Zu kurze Strings mit Leerzeichen auffüllen und dann auf Länge schneiden.
Def @CutL$(2) @Mid$(@Add$(@$(1),@Space$(@%(2))),1,@%(2))
Def @CutR$(2) @Mid$(@Add$(@Space$(@%(2)),@$(1)),@Add(@Len(@$(1)),1),@%(2))
oder
Def @CutL$(2) @Left$($(1)+Space$(%(2)),%(2))
Def @CutR$(2) @Right$(Space$(%(2))+$(1),@%(2))
Syntax:
NeuText$ = @CutL$( Text$, Len% ) 'linksbündig füllen
NeuText$ = @CutR$( Text$, Len% ) 'rechtsbündig füllen
@Pad$
Zu kurze Strings mit Leerzeichen auffüllen
(längere Texte bleiben erhalten).
Def @PadL$(2) @If(@Len(@$(1))<@%(2)),@$(1)+@Space$(@%(2)-@Len(@$(1))),@$(1))
Def @PadR$(2) @If(@Len(@$(1))<@%(2)),@Space$(@%(2)-@Len(@$(1)))+@$(1),@$(1))
oder
Def @PadL$(2) If(Len($(1)) < %(2)),$(1)+Space$(%(2) - Len($(1))),$(1))
Def @PadR$(2) If(Len($(1)) < %(2)),Space$(%(2) - Len($(1)))+$(1),$(1))
Syntax:
NeuText$ = @PadL$( Text$, Len% ) 'linksbündig füllen
NeuText$ = @PadR$( Text$, Len% ) 'rechtsbündig füllen
Textmodus
Hintergrundfarbe
Das Hauptfenster muß übrigens nicht immer weiß bleiben. Es kann natürlich auch eingefärbt werden.
Dabei sollte nicht vergessen werden, daß Cls n& nur den Hintergrund einfärbt.
Die Hintergrundfarbe für den zu schreibenden Text muß natürlich auch gesetzt werden.
SetTrueColor 1
Cls @RGB(206,206,206)
Color 0,7
Print ""
Print @Tab(20);"Im Textmodus kann natürlich auch"
Print @Tab(20);"der Hintergrund eingefärbt werden..."
Print ""
Print " Test Test Test Test Test Test Test Test"
Print " Test Test Test Test Test Test Test Test"
Print " Test Test Test Test Test Test Test Test"
WaitKey
End
Vergleiche
Diese Vergleiche fehlen noch in Profan²:
@LE, @LE$
Def @LE(2) @Not(@GT(@&(1),@&(2)))
Def @LE$(2) @Not(@GT$(@$(1),@$(2)))
Vergleicht auf "kleiner oder gleich".
@GE, @GE$
Def @GE(2) @Not(@LT(@&(1),@&(2)))
Def @GE$(2) @Not(@LT$(@$(1),@$(2)))
Vergleicht auf "größer oder gleich".
|