Seite 1 von 1

eigene Datentypen/Datenfelder ?

Verfasst: 12.04.2008 22:33
von spider84
Kann mir jemand am Beispiel des Morse-Codes erklären, wie ich derartige Tabellen geschickt verarbeiten kann?
Mein Traum wäre, dass ich einen Datentyp entwerfen könnte, der die Zustände k (=kurz) und l (=lang) kennt und ich in der Form

meinmorsearray[s] = l, l, l
meinmorsearray[o] = k, k, k

darauf zugreifen kann. Problem ist, dass nicht alle Buchstaben so kodiert sind. Manche haben auch nur ein kurz (glaube das e zum Beispiel).

Verfasst: 12.04.2008 22:44
von STARGÅTE
naja der komplette Morse Code besteht ja nicht nu aus kurzen und langen Signalen wie sein l und k sondern auch aus Pausen, die anhand ihrer länge ein Symbol (k,l), Zeichen, Wort Trennen
Weitere Infos

du kannst also mit FindString einen String (Morse Code) in ein Wort umwandeln und auch wieder zurück.

Verfasst: 12.04.2008 22:45
von Kaeru Gaman
sortier die alle nach bitwerten

du brauchst noch nen dritten wert, weil morsezeichen eben führende nuller mitschreiben.
also, im grunde 4bit pro stelle.

00,00,10 für e
10,10,10 für s
weisst wiesch mein....

Verfasst: 12.04.2008 23:04
von spider84
danke schonmal für die schnelle antwort.
@stargate: im normalen alphabet sind ja auch keine leerzeichen drin, trotzdem gibt es sie. die würde ich natürlich in form einer verstellbaren pause einsetzen.

@kaeru gaman: die variante geht, allerdings hat sie 2 nachteile: 1. ich muss überprüfen ob da eine 0 steht und die dann ohne zeit zu verlieren überspringen, 2. ich wollte eigentlich bei der sache etwas über eigene datentypen in PB lernen. ich hätte auch fragen können wie ich ein 4-farb-bild darstelle mit einem datentyp color, der die werte "rot" "grün" "blau" und "weiss" kennt. bei dem morsen dachte ich mir, dass er k und l vlt in 3er-arrays hat. sonst müsste ich ja bei s=k,k,k jedes mal nach dem komma suchen...

Verfasst: 12.04.2008 23:11
von STARGÅTE
naja bei den Bild mit 4 Farben könntest du für 4 Pixel eine Variable vom Typ Byte nutzen :
1Byte = 8Bit
0000000
=>
4Pixel:
00 00 00 00
\/
4Farben:
00 rot
01 grün
10 blau
11 weiss

PS: habe das gefühl ich verstehe gerade das Thema falsch :freak:

Verfasst: 12.04.2008 23:54
von spider84
ich möchte einfach zwei dinge wissen:

1. kann ich in PB wie in Delphi einen Datentyp Farbe machen, der werte wie "rot" oder "blau" als Typ entgegennimmt (und mich in dem Stil "IF pixel(12,23)=blau THEN..." programmieren lässt)?

2. wie realisiere ich eine folge von Werten, deren Länge variiert am geschicktesten. Zum Beispiel wenn ein "a" kodiert werden soll als Folge 23, 45, 12 - pack ich das am besten in ein Array, das 3 Spalten breit ist oder gibt es geschicktere Lösungen. Und wie erkenne ich ob das Ding nun alle 3 Arrays belegt bei Buchstaben mit kürzerer Kodierung?

Verfasst: 13.04.2008 00:00
von Riacon
sowas?

Code: Alles auswählen

structure pixel
  rot.b
  gruen.b
  blau.b
endstructure

dim bild.pixel(800,600)
sehrblau=rgb(0,0,250)

if bild(12,23)\blau=sehrblau
end
endif

Verfasst: 13.04.2008 00:07
von STARGÅTE
1. kann ich in PB wie in Delphi einen Datentyp Farbe machen, der Werte wie "rot" oder "blau" als Typ entgegennimmt (und mich in dem Stil "IF pixel(12,23)=blau THEN..." programmieren lässt)?
Direckt nein (soweit ich weis)

du kannst nur einen Definieren das pixel() vom Typ Byte ist, und dann ein #Blau und ein #Rot .... als Konstanten definieren die dann werde zwischen -128 und 127 haben.

Sodass es dann so sein wird :

Code: Alles auswählen

#Blau = 1
#Rot = 2
;...
Dim Pixel.b(30,30)
If Pixel(12,23)=#Blau
 ; Mache etwas
ElseIf Pixel(12,23)=#Rot
 ; Mache was anderes
EndIf