String Array to Byte Array problem

Tiak
2008-09-03
2008-09-04
  • Tiak - 2008-09-03

    Kan mir bitte jemand helfen mit mein kleines Problem, mit ein Konvertierung Funktion von String Array zu Byte Array, ich krieg nicht die String Daten in der Byte Array Henn. Später muss die Daten über tcp/ip schicken.

    Grub Jesper

    TYPE ETH_FotoData :

    STRUCT

    Code1: STRING[30];
    
    Text: STRING[30];
    
    Code2: STRING[30];
    
    Data: STRING[60];
    

    END_STRUCT

    END_TYPE

    VAR_IN_OUT

    ETHFotoData: ARRAY[0..1,0..12] OF ETH_FotoData;
    
    Result:  ARRAY[0..1000] OF BYTE;
    

    END_VAR

    VAR

    ptString: POINTER TO STRING;
    
    Index: INT;
    
        I: INT;
    

    END_VAR

        FOR I:=1 TO 12 DO
    
            ptString^ := (ETHFotoData[1,I].Data);
    
            index := index + LEN(ptString^);
    
            ptString := ADR(result[index]);
    
        END_FOR
    
     
  • Erik Böhm - 2008-09-03

    Moin

    Probiers doch mal so:

    VAR

    ptString: POINTER TO STRING(13);

    END_VAR

    ptString := ADR(ETHFotoData[0,0].Data);

    String[1] := ptString^;

    ptString^ := ADR(ETHFotoData[1,0].Data);

    String[2] := ptString^;

    Gruss Erik

     

    Related

    Talk.ru: 1
    Talk.ru: 2

  • Tiak - 2008-09-04

    Erik Böhm hat geschrieben:
    Moin
    Probiers doch mal so:
    VAR
    ptString: POINTER TO STRING(13);
    END_VAR
    ptString := ADR(ETHFotoData[0,0].Data);
    String[1] := ptString^;
    ptString^ := ADR(ETHFotoData[1,0].Data);
    String[2] := ptString^;
    Gruss Erik

    Moin moin Erik

    Bin mir nicht ganz sicher was du meinst oder wir ich das verenden.

    Gruss Jesper

     

    Related

    Talk.ru: 1
    Talk.ru: 2

  • Erik Böhm - 2008-09-04

    Moin

    Was ist denn unklar ?

    Pointer setzen auf das erste Element des Byte Arrays.

    Pointer Typ STRING(Länge des Byte Arrays)

    • ptString := ADR(ETHFotoData[0,0].Data);

    Den Pointer dereferenzieren in einen String

    • String[1] := ptString^;

    Das wars...

    Gruss Erik

     

    Related

    Talk.ru: 1

  • Tiak - 2008-09-04

    Erik Böhm hat geschrieben:
    Moin
    Was ist denn unklar ?
    Pointer setzen auf das erste Element des Byte Arrays.
    Pointer Typ STRING(Länge des Byte Arrays)
    - ptString := ADR(ETHFotoData[0,0].Data);
    Den Pointer dereferenzieren in einen String
    - String[1] := ptString^;
    Das wars...
    Gruss Erik

    ETHFotoData[0,0].Data ist ja ein String und de Daten in der String muss ich in ein Byte array übertrage für später Daten Übertragung. Die gesamte lange der byte ist 650 byte

    also ein loop

    x:= von 0 bis 12

    ETHFotoData[0,x].Data

    Gruss >Jesper

     

    Related

    Talk.ru: 1

  • Erik Böhm - 2008-09-04

    OK. Mein Fehler.

    Dann eben so.

    Beispiel anbei.

    Gruss Erik

    StringToAby.zip [4.22 KiB]

     
  • Tiak - 2008-09-04

    Erik Böhm hat geschrieben:
    OK. Mein Fehler.
    Dann eben so.
    Beispiel anbei.
    Gruss Erik

    Moin Erik

    Vielen Dank für die Hilfe das war super Erik, Und es funktioniert auch )

    Viele Gruse aus Dänemark Jesper

     

Log in to post a comment.