Strings Außeinandernehmen
Übersicht

![]() |
Silver_KneeBetreff: Strings Außeinandernehmen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jeder Der eine Programmiersprache in seinem Spiel haben will kommt auf folgende Befehle:Code: [AUSKLAPPEN] Function Between$(s$,b$,e$,fl=1) f=Instr( s,b,fl )+Len(b) l=Instr( s,e,f ) r$=Mid( s,f,l-f) Return r End Function Function AfterLast$(txt$,find$) While Not Instr(txt,find)=0 txt=Mid(txt,Instr(txt,find)+Len(find)) Wend Return txt End Function Function BeforLast$(otxt$,find$) txt$=otxt While Not Instr(txt,find)=0 l=Instr(txt,find)+Len(find) txt=Mid(txt,l) Wend Return Mid(otxt,1,l-2) End Function die Bestimmt in irgendeiner Form erfunden hat... Zusätzlich Möchte ich euch meine GrapicalFonts nicht VorenthaltenCode: [AUSKLAPPEN] Dim pix(0,0) Function LoadGFont(bmpfile$,txt$,frames,mask_r,mask_g,mask_b,border_r,border_g,border_b) im=LoadImage(bmpfile) ;Get argb color the old way Color border_r,border_g,border_b Plot 0,0 border=ReadPixel(0,0) ;Got it? t1.Function_LoadGfont_Type1=New Function_LoadGfont_Type1 t1\image=im width=ImageWidth(im) height=ImageHeight(im) start=0 Repeat SetBuffer ImageBuffer(im) count=count+1 If count-fr*Len(txt)>Len(txt) fr=fr+1 EndIf Dim pix(width,height) End_=width For y=0 To height For x=start To End_ pixel=ReadPixel(x,y) If pixel=border end_=x pix(x,y)=pixel Next Next t2.Function_LoadGfont_Type2=New Function_LoadGfont_Type2 t2\image=CreateImage(End_-start,height):MaskImage im,mask_r,mask_g,mask_b t2\source=t1 t2\frame=fr t2\sym=Mid(String(txt,frames),count,1) SetBuffer ImageBuffer(t2\image) For x=start To end_ For y=0 To height WritePixel x-start,y,pix(x,y) Next Next start=end_+1 Until start=>width SetBuffer BackBuffer() Return im End Function Type Function_LoadGfont_Type1 Field image End Type Type Function_LoadGfont_Type2 Field image,source.Function_LoadGfont_Type1,sym$,frame End Type Function GText(x,y,txt$,p_image,frame=0) Local t1.Function_LoadGfont_Type1,t2.Function_LoadGfont_Type2,sym$ For t1=Each Function_LoadGfont_Type1 If t1\image=p_image Exit EndIf Next If t1=Null RuntimeError "Font not loaded by LoadGFont() !" For count=1 To Len(txt) sym=Mid(txt,count,1) For t2=Each Function_LoadGfont_Type2 If t2\source=t1 And t2\sym=sym And t2\frame=frame Exit EndIf Next If t2=Null RuntimeError "Font not contains symbol ''"+sym+"''!" DrawImage t2\image,x,y x=x+ImageWidth(t2\image) Next End Function Beispielimage (|n einer bestimmten Farbe/ Hintergrund in eier konstanten farbe): 1|2|3|4|5|6|7|8|9|0|#|\|<|>|1|2|3|4|5|6|7|8|9|0|#|\|<|>|1|2|3|4|5|6|7|8|9|0|#|\|<|>| BBcode zum Laden: Code: [AUSKLAPPEN] GFont=LoadGFont("my\cool\graphical\font.bmp","123456789#\<>",framesets,hinter_r,hinter_g,hinter_b,Trennlinie_r,Trennlinie_g,Trennlinie_b) zum Anzeigen Code: [AUSKLAPPEN] GText x,y,"<1234\1233395236#\991>",GFont,2
Edit Verbesserungsvorschläge konnen kommen |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wäre es mit Beschreibungen zu Deinen Funktionen, damit man sich nicht aus dem Code herauspuzzeln muss was sie tun und welche Parameter sie erwarten ? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
da gäbe es between:
das gib etwas zwischen zwei textstellen wieder beispeiel Code: [AUSKLAPPEN] txt$="<img width='100%' src='logo.gif'>"
art$=Between(txt,"<"," ");gibt img zurück select art case "img" file$=Between(txt,"src='","'");gibt logo.gif zurück weil erst nach dem src=' weitergesucht wird end select Afterlast habe ich für dateinamen "erfunden": Es gibt alles nach dem letzten des angegebenen zeichen an Code: [AUSKLAPPEN] filename$="C:\Programe\Agent.TheGame\Agent.exe"
Print AfterLast(filename,"\");zeigt Agent.exe auf dem Bildschirm an Print AfterLast(filename,".");zeigt exe auf dem Bildschirm an BeforLast ist das Gegenstück Code: [AUSKLAPPEN] Print AfterLast(filename,"\");zeigt in meinem Beispiel den Pfad C:\Programe\Agent.TheGame auf dem Bildschirm an achtung das zeichen selbst nicht
zudem hab ich noch ein haufen solcher Stringzerstörer bei mir rumliegen muss sie nur zusammensuchen... |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube du hast dich im Letzten nen Bischen Verschaut oder ?
Müste doch: Code: [AUSKLAPPEN] Print BeforLast(filename,"\");zeigt in meinem Beispiel den Pfad C:\Programe\Agent.TheGame auf dem Bildschirm an achtung das zeichen selbst nicht Oder nicht ?? |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group