Re: wie bekomme ich den string in ein Byte[] Kategorie: Programmierung (von wernerAZ - 30.03.2007 3:59) | ||
Als Antwort auf Re: wie bekomme ich den string in ein Byte[] von wernerAZ - 29.03.2007 22:58 | ||
| ||
Hallo nochmal, also ins Flash schreiben ging gut. Mit dem Auslesen war es schwieriger. Die Ausgabe auf mein Tochlcd funktionierte gleich, aber um die Daten auf das lcdext zu bekommen und um die Daten weiter zu bearbeiten, mu�ten die byteBuf[]-Daten wieder in ein String umgewandelt werden. Mit flash.readStringArray bekam ich auch die abgespeicherten Werte ab einer bestimmten Position aufs extLCD, aber ich konnte nicht die Länge bestimmen. Und an dem Versuch, es gleich als StringArray abzuspeichern, bin ich kläglich gescheitert. Falls das jemand geschaft hat, täte mich ein kleines Beispiel interessieren. Wie dem auch sei, mit der Zauber-Routine von midString gelang es mir dann byte buf[] in String umzuwandeln. Falls jemand eine konventionelle Lösung hat...Bin ich daran interessiert. //Flash lesen zeile=0; lcdext.clear(); touchlcd.clear(); for k=1 ... 10 { str.clear(s); flash.readByteArray(1,k*64,buf,64); //mem.copy(s,0,buf[35],20); //funktioniert leider nicht strx.insert(buf[35],s,0,20);//geht doch, byte[] in string lcdext.delline(1); lcdext.line(1); lcdext.print(s); lcdext.delline(2); lcdext.line(2); lcdext.zahl3(str.length(s)); touchlcd.text('L',0,zeile,buf[35],20); zeile=zeile+6; sleep 3000; } mfg Werner > Hey Martin, > dann klon ich eben �pfel und Birnen. Ich möchte Datensätze die grö�er sind als 30 Byte abspeichern. > Aber dank eines Beitrages vom April 2003 in diesem Forum über mem.copy, habe ich die Lösung gefunden. > Bin gerade am ausprobieren.Sieht aber gut aus. Anbei der Zaubercode! > > //irgendwo am Anfang > byte buf[64]; > > //Flash beschreiben > for k=2 ... 11 > { > mem.fill(buf,64,32); > mem.copy(buf,0,location[k].breiteB,1); > mem.copy(buf,1,location[k].breite,11); > mem.copy(buf,12,location[k].laengeL,1); > mem.copy(buf,13,location[k].laenge,12); > mem.copy(buf,25,location[k].datum,10); > l=str.length(location[k].name); > mem.copy(buf,35,location[k].name,l); > lcdext.line(1); > lcdext.zahl(flash.writeByteArray(1,k*64,buf,64)); > } > lcdext.line(2); > lcdext.print("Erledigt"); > > Aber trotzdem vielen Dank für deine Antwort. > > Ein glücklicher Werner. > > > Hallo Werner > > > > Du versuchst gerade �pfel auf Birnen zu Klonen ;) > > ein String benötigt unabhängig von seiner Länge immer 32 Byte! > > Strings kannst du mit der Funktion Flash.writeString() direkt in den Flash schreiben, > > dabei musst du beachten da� du mit 32 er Schritten Addressierst. > > Siehe Modulhilfe Flash.HTML. > > > > Gru� Martin > > > > > > > Hallo zusammen, > > > ich möchte mehrere Strings in ein byte[] Array schreiben, um es dann in den Flash-Speicher zu speichern. > > > Hier meine definition: > > > > > > type gpsDaten > > > { > > > string breiteB; > > > string breite; > > > string laengeL; > > > string laenge; > > > string name; > > > } > > > > > > gpsDaten location[15]; > > > > > > byte buf[64]={location[x].breiteB,location[x].breite,location[x].laengeL,location[x].laenge,location[x].name}; > > > > > > Aber irgendwie gelingt mir das nicht. Was mache ich verkehrt? Wie bekomme ich die Daten in buf? > > > > > > mfg > > > Werner > > > > > > > > > | ||
Antwort schreiben Antworten: Re: wie bekomme ich den string in ein Byte[] (von wernerAZ - 30.03.2007 4:30) Re: wie bekomme ich den string in ein Byte[] (von André H. - 30.03.2007 9:13) Re: wie bekomme ich den string in ein Byte[] (von wernerAZ - 30.03.2007 13:55) Re: wie bekomme ich den string in ein Byte[] (von André H. - 9.04.2007 19:19) |