| |
|
|
funkheld | Hallo, ich empfange jetzt Daten aus dem Clipboard. Die Daten stehen ja dort als Text. Mit: text$=getclip$() habe ich den text$ und mit Len erfahre ich die Länge. Nun möchte ich den text$ in eine Bereichsvariable setzen um eine Zahl auszuwerten. Der String ist eigentlich eine Bytefolge und kann nicht mit "String" eingelesen werden, weil auch mitten drin eine "0" stehen kann.
Frage: Wie bekomme ich den text$ in die Bereichsvariable zum auswerten? Ich compiliere mit XPSE.
Danke.
Gruss |
|
|
| |
|
|
|
Jörg Sellmeyer | Char verarbeitet auch Nullbytes. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 10.05.2012 ▲ |
|
|
|
|
| Genau, hier hilft die Prozedur char oder nutze die rtlMoveMemory Funktion.
XPSE-Kurzschreibweise:
oder:
var s$="Mein Stringinhalt"
declare speicher#
dim speicher#,len(s$)
char speicher#,0=s$
//jetzt ist in der Bereichsvariable "speicher" der Stringinhalt
dispose speicher#
|
|
|
| |
|
|
|
funkheld | Ja, danke für die Vorschläge.
Gruss |
|
|
| |
|
|
|
funkheld | Jup, ich kann jetzt die Daten aus dem Clipboard empfangen und ausgeben. Wenn jetzt dieses "if wert&=1" erfüllt ist und ich die Daten ausgeprintet habe, möchte ich anschliessend 5 Zählwerte weitergehen in der While-Schleife. Wie geht das?
Danke.
{$cleq}
declare ende&,text$,bereich#,z&,laenge&,wert&
dim bereich#,128
ende&=1
Window 20,20-600,500
While Ende&
sleep 5
text$=getclip$()
clearclip
laenge&=len(text$)
if laenge& > 5
char bereich#,0=text$
whileloop laenge&
wert&=@byte(bereich#,&loop)
if wert&=1
print "tacho: ";
print double(long(bereich#+&loop+1,0))
endif
if wert&=2
print "bremse: ";
print "bremse "+double(long(bereich#+&loop+1,0))
endif
endwhile
endif
EndWhile
End
|
|
|
| |
|
|
|
| Machste einfach eine eigene Zählschleife z.B.:
oder xpseischer:
|
|
|
| |
|
|
|
funkheld | Jup, danke. das funktioniert. Ich dachte man kann die Variable &Loop während des Ablaufes ändern.
Warum wird nach 10 durchläufen das Wort "ende" nicht geprintet?
|
|
|
| |
|
|
|
Wilfried Friebe | Hi
Ich habe mal ein bisschen verändert allerdings ohne XPSE
Gruß Wilfried |
|
|
| Board MSI B450M BAZOOKA CPU AMD Ryzen 7 2700x 8 Core 3,7-4,2 GH 32 Gb Ram NVIDIA GeForce GTX 3060 12 GB Ram Window 11 Prof 64 Bit
Sun-Guru-Barebone CPU I7-9750H 16 GB Ram NVIDIA GeForce GTX1660TI 6 GB Ram Window 11 Hom 64 Bit
Profan 4.5 bis Xprofan 14 Ein frisch geschriebenes Programm hat meistens einen großen Fehler.Sollte man versuchen diesen großen Fehler zu beseitigen, hat man viele kleine Fehler "Grins" | 12.05.2012 ▲ |
|
|
|
|
Jörg Sellmeyer |
Warum wird nach 10 durchläufen das Wort "ende" nicht geprintet?
Weil Du aus dieser Schleife nicht herauskommst:
Mit Continue springst Du immer wieder an den Schleifenanfang. Break unterbricht die Schleife. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 12.05.2012 ▲ |
|
|
|
|
funkheld | Jup, danke für die verschiedenen Lösungen.
Gruss |
|
|
| |
|
|
|
| Hi!
Wenn sich aus Deiner Sicht eines Deiner Themen "erledigt" hat, dann das Thema einfach als "erledigt" markieren.
Dann wirds z.B. auch bei "Aktuelle Themen" ( [...] ) als erledigt angezeigt.
Dafür einfach unten bei den "Themenoptionen" auf "erledigt" klicken.
Ebenso kannst Du Beiträge als "Lösung" markieren. Das wiederum geht wenn man mit der Maus über den "Mehr"-Button fährt (jeder Beitrag hat solch Button unten rechts) und die Option "Als Lösung deklarieren" bestätigt. |
|
|
| |
|
|