Color-Parser aus einem String-Set

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

DerKeks

Betreff: Color-Parser aus einem String-Set

BeitragDo, Jan 10, 2008 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute!
Für mein aktuelles Projekt brauchte ich einen Weg Farben aus einem String-Set auszulesen und in die RGB Teile aufzuteilen.
Gab es vielleicht schonmal, trotzdem wollte ich euch meine Funktionen nicht vor enthalten Smile

Code: [AUSKLAPPEN]
num$ = "255|255|000" ; Dieses Set muss aus 3x3 Ziffern bestehen und einen "|" als Trennen haben

;----- Beispiel Anfang
Print "Rot     :   "+ParseColorR(num$)
Print "Gruen   :   "+ParseColorG(num$)
Print "Blau    :   "+ParseColorB(num$)
Print ""
Print "Druecken für Vorschau"
   WaitKey
   Color ParseColorR(num$), ParseColorG(num$), ParseColorB(num$)
Print "Gewählte Farbe des Sets"

WaitKey
End
;----- Beispiel Ende

Function ParseColorR(set$)
   r = Mid$(set$, 1, 3)
   
   Return Int(r)
End Function

Function ParseColorG(set$)
   g = Mid$(set$, 5, 3)
   
   Return Int(g)
End Function

Function ParseColorB(set$)
   b = Mid$(set$, 9, 3)
   
   Return Int(b)
End Function


Manche können es bestimmt gebrauchen, manche haben sowas schon ^^
Freue mich trotzdem auf Feedback

Grüsse DerKeks
 

timmeTheOnly

BeitragDo, Jan 10, 2008 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Nice,

kleine Hilfe:


Code: [AUSKLAPPEN]

num$ = "255|255|000" ; Dieses Set muss aus 3x3 Ziffern bestehen und einen "|" als Trennen haben

;----- Beispiel Anfang
Print "Rot     :   "+ParseColorR(num$)
Print "Gruen   :   "+ParseColorG(num$)
Print "Blau    :   "+ParseColorB(num$)
Print ""
Print "Druecken für Vorschau"
   WaitKey
   Color ParseColorR(num$), ParseColorG(num$), ParseColorB(num$)
Print "Gewählte Farbe des Sets"

WaitKey
End
;----- Beispiel Ende

Function ParseColorR(set$,rbg) ; rbg -> 1-3
  local ret

  select rgb
    case 1
       ret = Int(Mid$(set$, 1, 3))
     case 2
       ret = Int(Mid$(set$, 5, 3))
     case 3       
       ret = Int(Mid$(set$, 9, 3))
   end select

   Return ret
End Function


[EDIT]

Oh sorry, warn noch n paar Fehler drin. Das kommt von der Müdigkeit hehe ^^

So: Hier:

Code: [AUSKLAPPEN]

num$ = "255|255|000" ; Dieses Set muss aus 3x3 Ziffern bestehen und einen "|" als Trennen haben

;----- Beispiel Anfang
Print "Rot     :   "+ParseColor(num$,1)
Print "Gruen   :   "+ParseColor(num$,2)
Print "Blau    :   "+ParseColor(num$,3)
Print ""
Print "Druecken für Vorschau"
WaitKey
Color ParseColor(num$,1), ParseColor(num$,2), ParseColor(num$,3)
Print "Gewählte Farbe des Sets"

WaitKey
End
;----- Beispiel Ende

Function ParseColor(set$,rgb) ; rbg -> 1-3
   Local ret
   
   Select rgb
      Case 1
         ret = Int(Mid$(set$, 1, 3))
      Case 2
         ret = Int(Mid$(set$, 5, 3))
      Case 3       
         ret = Int(Mid$(set$, 9, 3))
   End Select
   
   Return ret
End Function
  • Zuletzt bearbeitet von timmeTheOnly am Do, Jan 10, 2008 22:18, insgesamt einmal bearbeitet

Lunatix

BeitragDo, Jan 10, 2008 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Meiner Meinung nach absolut unter Niveau für das CodeArchiv, da sich soetwas jeder in 2 Minuten selbst schreiben kann. Und dann sicherlich noch besser und im besten Fall mit Array's und einer "Explode" funktion, die Richtig funktioniert und ab den "|" auch wirklich trennt. Denn wenn man bei deinem Beispiel eine "25" Angibt, funktioniert nichts mehr wie es soll.

Bewertung: 0/10 Punkten.

Edit: T-Master, dein Code funktioniert nicht, zumindest dein Beispiel.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

FWeinb

ehemals "ich"

BeitragDo, Jan 10, 2008 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist nicht schön gemacht aber in der Regel steht ja drin das 3x3 Ziffern Verwendet werden soll ich hätte das mit Instr und Mid Gemacht also miti Instr nach dem | gesucht und dann mit Mid gespeichert aber ist ja jedem Selber überlassen wie er das macht.
"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

DerKeks

BeitragDo, Jan 10, 2008 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie gesagt, manche finden es ist eine leichte Aufgabe, manche können es gut brauchen.
Und ich sage ja nicht dass es jetzt die Top-Funktionen sind ^^ Ich brauchte es eben nur für mein Projekt...

DerKeks

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group