in Delphi 7, eine Klasse deklariert und daraus eine Klasse erstellt (in der Bedeutung uml).Wie kann ich herausfinden, welcher Funktionsaufruf meine Daten korrumpiert?
Die Klasse enthält einen öffentlichen Feldtyp der Zeichenfolgeliste.
nach dem Passieren des Objekts ein paar Mal, der erste Buchstabe in der ersten Zeile ist ausgeblendet.
Wie kann ich es von nicht passiert ???
Aufruf der Funktion, die trimmt ist
stringlist.ValueFromIndex[i];
weitere Informationen?
gut ist es so etwas.
type
TObjectionFilterFields = class(TObject)
private
public
z,x,c,v,b,n,a,s:integer;
list1:TStringList;
list2:TStringList;
enum:TEnum;
constructor Create; //override;
destructor Destroy; //override;
end;
Jetzt rufen wir bei einem Objekt create auf, fügen Daten ein und übergeben es weiter. auf einem anderen Objekt greifen wir die Daten und erstellen eine Zeichenfolge daraus, mit + Konkatation.
for i := 0 to list1.count-1
sql.add(''''+list1.ValueFromIndex[i] + ''''+'hdsjkf');
envoking stringlist.Strings [i] löste es
dank
Können Sie bitte etwas mehr Informationen und vorzugsweise etwas Code geben. –
Können Sie uns sagen, was das Name/Wert-Paar ist? Das fehlende Zeichen ist nicht das Name/Wert-Trennzeichen, oder? Normalerweise ist es ein Gleichheitszeichen (=). Spätere Versionen von Delphi lassen Sie es über TStrings.NameValueSeparator setzen, aber ich weiß nicht, ob das in D7 existierte. Sie könnten die rohe Zeichenkette mit der Zeichenkettenliste [i] überprüfen (sollte etwas wie "Name = Wert" sehen). – WileCau
Ich nehme an "für i = zu list1.count-1" muss sein "für i = ** 0 ** zu list1.count-1" –