Zeilenumbruch

  • Ich nehme an du meinst, dass du meistens bytes hast, die in binärschreibweise nicht über 7 stellen hinausgehen. Die 8. stelle (ganze links) ist also quasi immer eine 0. ich hab irgendwann mal ein script gemacht, was einen string mit einem beliebigen füllzeichen auf eine maximale größe füllt. Importiere das folgende Script als fill() und schreib dann in convert() vor return b; noch b=fill(b,8,"0","left");

    Script fill():

    GML-Quellcode

    1. //argument0: string
    2. //argument1: max. size
    3. //argument2: füllstring
    4. //argument3: "left", "center", "right"
    5. var differenz;
    6. if(string_length(argument0)<argument1)
    7. {
    8. differenz=argument1-string_length(argument0);
    9. if(argument3=="left")
    10. {
    11. repeat(differenz)
    12. argument0=string_insert(argument2,argument0,1);
    13. }
    14. else if(argument3=="right")
    15. {
    16. repeat(differenz)
    17. argument0=string_insert(argument2,argument0,string_length(argument0)+1);
    18. }
    19. else
    20. {
    21. repeat(ceil(differenz/2))
    22. argument0=string_insert(argument2,argument0,1);
    23. repeat(floor(differenz/2))
    24. argument0=string_insert(argument2,argument0,string_length(argument0)+1);
    25. }
    26. }
    27. return argument0;
    Alles anzeigen


    Da du ja nur das "left" brauchst, kannste alles andere auch rausschmeißen ;)

    //EDIT: fehler im script
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bottleneck ()

  • Im Prinzip spuckt spuckt liest der GM immer ein Byte, also 8 Bit ein und wandelt das in eine Dezimalzahl. Diese wird vom Konverter in eine Binärzahl gewandelt. Wenn allerdings ein Byte mal den Wert 3 zurückgeben sollte, wird das in ein 11 konvertiert und nicht in ein 00000011, so wie es sein müsste. Ich möchte eben wissen, wie ich den Converter dazu bringe, grundsätzlich immer Binärzahlen mit acht stellen zurückzugeben. Der müsste dann im Prinzip auf der Linken seite so viele 0en anhängen, bis ein achtstelliger String dabei rauskommt.

    Das obere Probllem ist gelöst und das Problem mit dem Quadrat liegt genau an diesem Umstand.

    €dit @Bottle:

    Funktioniert wunderbar!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von King Andre ()