Autor Beitrag
Hans Molter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 19.02.03 20:08 
Hallo !

Habe folgendes Problem
ausblenden Quelltext
1:
Head_read : array [1..16] of Char;					

wenn nun einzeln Zeichen zugewiesen werden , ist nach der zuweiseung der einzelnen Byte das 4. Zeichen nicht in Memo1 angehängt/übernommen
ausblenden Quelltext
1:
2:
3:
4:
5:
Head_read  [1] := Chr (065);
Head_read  [2] := Chr (066);
Head_read  [3] := Chr (000); <---- ursache !!!
Head_read  [4] := Chr (067);  
Memo1.Lines.Add (Head_read) ;   ---> AB    sollte AB C eintragen

!!! Auch weitere Zeichenzuweisung nach [3] werden ncht dargestellt

Bitte um Info .....und ich sag schon danke für die Unterstützung !!!

Moderiert von user profile iconTino: Code-Tags hinzugefügt.

_________________
naja einfach so.....
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 19.02.03 20:11 
Hallo,

das wird so nichts. Alle Zeichen kleiner 32 sind Steuerzeichen und können nicht dargestellt werden. Was Chr(0) genau macht, kann ich leider nicht mehr sagen.

Wenn Du ein Leerzeichen einfügen willst musst Du Chr(032) benutzen.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Hans Molter Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 19.02.03 20:25 
Danke für die Info

mh Hintergrund ist folgendes ...TCP kopplung und da soll im Header Stelle x.x 00 Hex stehen ...tja und nun such ich nach Möglichkeiten dies einzutragen
das komische an der sache (Steuerzeichen ) wenn Chr (001) kann ohne Probleme verwendet werden auch nachfolgende zuordnungen werde übernommen/angezeigt

Ps : Vieleicht kann man anders dies einen Pchar ....übergeben bzw
der Funktion ....Socket.SendText oder SendBuf

danke !

_________________
naja einfach so.....
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 19.02.03 20:34 
Hallo,

wenn da eine Null (0) stehen soll, kannst Du doch Chr(48) verwenden?

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Wolff68
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 302
Erhaltene Danke: 1

WinXP home
D6 Prof
BeitragVerfasst: Mi 19.02.03 20:48 
IMHO ist CHR(0) das Ende-Zeichen eines Strings. Mit PChar oder Pascal-Strings (String[255]) sollte es eher gehen. Das ganze aber in einem Memo anzuzeigen wird wohl scheitern, weil alles unter 32 nicht darstellbar ist, und interpretiert wird (zB TAB)

_________________
"Der Mensch ist nicht was er sich vorstellt oder wünscht zu sein, sondern das was andere in ihm sehen."
Hans Molter Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 19.02.03 20:53 
hi

nicht 0 in als text Zeichen , sondern 00 in HEX ...denn 048 würde 30 Hex bedeuten ....tja und ich bin noch am überlegen wie ich dies umwandeln kann? Wenn ich alles mal Sniffermäßig auf LAN dies anschaue und zB. Chr (001) eintrage ...so wird auch in Hex 01 gesendet /übertragen.. also muß doch das gehen!

Habe auch schon mit Ansi probiert ... gleicher effekt aber wie heißt es ... nicht verzagen Forum fragen ..... ich denk das event Compiler nach der Anweisung Chr (000) einfach weiter Zuweisungen ignoriert oder .... Auch unter Delphi 6 gleiche Problem naja ...man soll nicht aufgeben

_________________
naja einfach so.....
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 20.02.03 11:24 
Hallo,
Wolff68 hat folgendes geschrieben:
IMHO ist CHR(0) das Ende-Zeichen eines Strings. Mit PChar oder Pascal-Strings (String[255]) sollte es eher gehen.

nicht ganz. Das #0 ist das Ende Zeichen eines C-Strings also eines pChar. Das Array OF Char entspricht einem Solchen C-String. Ich weis ja nicht wie Hans Molter das in sein Memo füllt, ich gehe aber davon aus, das er (wenn auch indireckt) einen pChar übergibt. Bei der Interpretation sieht das Programm dann die #0 erkennte "richtig" hier ist der String zuende und ignoriert alles was danach kommt.

Gruß
Klabautermann
Hans Molter Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 20.02.03 17:14 
Hallo

also das mit array of Char habe ich nun anders gelöst array of Byte
Dadurch kann ich auch eine 00 zuweisen und nachfolgende Eintragungen werden nicht einfach abgeschnitten , bzw diese kann somit auch an bestimmten Stellen eines Header für Winsocket Kommunikation gesendet werden ....auch schon mit erfolgt durchgeführt !!

also somit erledigt , bzw muß halt zur Darstellung in Anwendung noch was ändern! aber danke für die schnelle reaktion

_________________
naja einfach so.....