hi ich möchte eine "größere" datenmenge am besten in ein array speichern konkret heißt das dass mir ein handy beispielsweise folgendes ausgibt: +CMGR: 1,,20 069134660405F1040C98456317925805000040703871906280012D OK (das kommt erstmal in ein array) und ich zum vergleichen dieser vom handy ausgegebenen daten ein array verwende in die ich bereits diese daten vorher gespeichert habe ich dachte mir zb ein unsigned char array mit 70 feldern müsste locker ausreichen....nur wie diese daten darin speichern? (außer jedes feld einzeln von hand zu beschreiben :)) das auslesen diese daten ins array is ok das verlgeichen auch nur eben wie ich vorher, damit ich vergleichen kann, diese datenmenge in ein array bekomme ist mir schleierhaft. thanx in advance
ich weis zwar nicht wie du auf die idee kommst eine sms mit einer anderen zu vergleichen aber nun gut ;) ich würd da einfach die make-file abändern und noch einen prog VOR dem gcc starten lassen.. oder noch einfach batch file die make heist rein ins project-dir da drinnen machst dann <<<<<<<<<<<<<snip>>>>>>>> liebe_exe_die_aus_dem_string_ein_c_array_macht.exe make.exe %1 <<<<<<<<<<<<snip>>>>>>>>> die exe legt einfach eine cpp-file an wo dann das array definiert und geladen wird..in welcher form is ja egal... schaut dann ca so aus in der file... <<<<<<<<<<snip>>>>>>>>>>> unsigned char cArray[70]; void InitArray() { cArray[0]='zeichen1'; cArray[1]='zeichen2'; cArray[2]='zeichen3'; cArray[3]='zeichen4'; ... ... } <<<<<<<<<<<<<<<snip>>>>>>>> das auszugeben sollte irgendwie schaffbar sein (würde sogar mit vbs gehn)... gut in deinem main rufst dann noch InitArray() auf und fertig ;) brauchst nur die daten in eine text-file tun und das prog zerpflückt das dann... wennst probs damit haben solltest... ich sollte heute abend da was schönes bastln können.... 73 de oe6jwf / hans
Wenns in C sein soll: char meinarray[]="+CMGR: 1,,20\n069134660405F1040C98456317925805000040703871906280012D\n OK"; aber alles in einer Zeile. Eventuell muss es ein \r\n statt einem \n sein. eine andere Schreibweise wäre: char meinarray[]={'+'.'C','M' ... }; Du brauchst in [] keine Grösse angeben, die weiss der Compiler.
Hallo Hans! Ich bin zwar auch Steirer, aber so kompliziert denk ich nicht, oder hab ich was falsch verstanden? Bin grad erst auf und hatte erst einen Kaffee.
najo ich mach das normalerweise so wenn ich binär daten hab... stimmt strings dürften so am einfachstn sein... nur müsst ich da nachgucken ob man auf die art und weise auch globale füllen darf....bin mir ned ganz sicher... btw warum einfach wenns kompliziert auch geht... aja man kann das auch auf mehrere zeilen aufsplitten... char meinarray[]="+CMGR: 1,,20\n069134660405F1040C9845631792580\ 5000040703871906280012D\nOK"; damit gehts... und wenn du beim string der vom handy kommt noch alle \r\n durch \n ersetzt (also einfach \r am uart ignorieren ;) ) dann hast 0 probs... wäre mir nicht soo sicher ob alle handys \r\n oder nur \n schicken... dürfte der gleiche schrott wie unix/win sein.... so nachmal 73 btw weis eigentlich immer irgendwer was oe6 zu bedeuten hat g
>ich weis zwar nicht wie du auf die idee kommst eine sms mit einer >anderen zu vergleichen aber nun gut ;) Hm, ganz einfach: eine Art "Remote-Shell" per SMS :D
> btw weis eigentlich immer irgendwer was oe6 zu bedeuten hat *g*
Wenn man früher mal OE6FAD geheissen hat, dann schon :-)
thanx soweit wo wir gerade dabei sind \n bzw. \r\n ist das line feed und wie realisiert man eine neue zeile ? zb ==== 2345243524542254542 OK ==== 2345243524542254542\n(??)OK evtl. mit vertical tab ?
\n : new-line, 0x0D \r : return carrier, 0x0A Was möchtest Du jetzt genau?
>\n : new-line, 0x0D >\r : return carrier, 0x0A argh war wohl noch zu früh: \n : new-line, 0x0A \r : return carrier, 0x0D Sorry for any inconvenience...
wenn du als client win rechner hast... dann musst du \r\n schicken oder im terminal das umstellen... linux/unix will \n für new-line ;) btw das mit der remote shell is prinzipiell eine gute idee...aber ich würd da troztdem alles decodieren und nur text und nummer speichern.. sonnst hast mal ein anderes handy dabei und dann geht nix...sprich authentifieren per sms und dann remote controllen ;) nebenbei müsste da auch weniger speicher belegt werden... sprich 160zeichen+nummer max im gegensatz zu diversen längen und nummer und text ;) @ex 6AFD noch immer call oder zur ruhe gekommen ??? ;) 73 de oe6jwf / hans
>wenn du als client win rechner hast... dann musst du \r\n schicken >oder im terminal das umstellen... linux/unix will \n für new-line ;) Viele Modems (naja, habe nicht wirklich viele gesehen, aber mindestens die Siemens T/MC35 und auch die Wavecom) benötigen lediglich \r (!). Steht aber im Datenblatt, vielleicht sollte man den AT-Layer etwas flexibler gestalten...
hmmm so wie ich das sehe werde ich mal meine sms-routinen überarbeiten ;) da wird dann beim init mal at mit \r dann mir \n und schlussendlich \r\n geschickt...dort wo was zurückkommt is dann das richtige zeichen dabei g... najo mal schaun bis wann ich das alles schön verpackt hab...
@Hans Ich bin schon langer nimmer aktiv, hab auch fast nur Packet Radio gemacht. Das war aber zu einer Zeit als es Linux noch nicht gab. Da hab ich TCP/IP online mitschauen können (WNOS hiess das glaub ich damals). Ausserdem wohne ich jetzt in Deutschland, ich glaub da müsste ich nochmal die Prüfung machen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.