Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Stringlänge setzen, dann füllen

  Alt 10. Jun 2004, 11:03
Zitat von Brüggendiek:
Du setzt den String am Anfang auf die richtige Länge. Soweit, so gut - ist auch zu empfehlen, da das ständige Verlängern des Strings (dynamisches Array) ja den Speicher vollmüllt.
Das war Sinn und Zweck der Übung.

Zitat:
Allerdings kopierst Du dann mit
foo := foo + IntToHex(dummy, 8) + ' '; die Werte nicht in den String, sondern dahinter!
Ja, als ich nachts aufgewacht bin, ist es mir auch klar geworden.

Zitat:
Du mußt schon den Wert ab der richtigen Position in den String kopieren!
Ähm, ja. Es war schon spät.

Zitat:
Allerdings habe ich mit Deiner Frage ein kleines Problem:
Willst Du uns testen - oder warst Du beim Proggen nicht gerade gut drauf? Von Dir hätte ich sonst so eine Frage nicht erwartet!
War kein Test. Hatte einen Blackout.

So. Ich habe mich jetzt für Move entschieden, nur gibt es da ein kleines Problem: Die Leerzeichen fehlen, die ich dranhänge, um die Bytes zu trennen. Erst dachte ich logisch, Brüggendiek hat sich vertan:
Code:
Move (neu [1], foo [i * 8 + 1], [b]8[/b]);
neu ist aber natürlich nicht 8 Zeichen lang, sondern 9 (8 Hex-Stellen plus Leerzeichen). Als ich die dann Zeile dann auf
Move (neu [1], foo [i * 8 + 1], length(neu)); geändert habe, fehlten sie aber trotzdem noch. Wenn ich mir jetzt den Index ankucke: i*8+1, dann ist der Index beim ersten Schleifendurchlauf 1, beim zweiten 9 und damit überschreibt er das Leerzeichen. Danke für das zuhören, habe gerade durch das Selbstgespräch die Lösung gefunden: Es muss heißen: i*9+1.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat