Forum: Programmieren allgemein
by Kostas,
20. Jun 2016
Ja, habe ich verstanden.
Jetzt funktionierts und ich weis warum. :-)
Bisher hat es eben zufällig funktioniert.
Herzlichen dank nochmals.
Forum: Programmieren allgemein
by Kostas,
20. Jun 2016
Ich hatte den Hersteller kontaktiert um die Spezifikation zu besprechen. Dabei hat er erwähnt, ich darf auf keinen Fall die Feldinhalte verändern.
Meine Methode funktioniert zufällig weil ich alle drei Zeichen "," als Trennzeichen suche und nicht nur nach dem Komma. Ich habe den Export umgestellt
indem ich Anführungszeichen im Feldinhalt maskiere durch ein weiteres Anführungszeichen und...
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Ja, ich habe jetzt das Problem erkannt. Der Text kann eigentlich nicht korrekt geparst werden, auch wenn es in meiner Methode bis jetzt immer funktioniert hat.
In meiner Methode suche ich nach Anführungszeichen Komme Anführungszeichen also "," oder " das hat bis jetzt "zufällig" funktioniert weil ich im Text nie das "," gehabt habe. :-)
Die Feldinhalte kommen eben aus einer Datenbank. Ein...
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Hallo Uwe,
Bei SplitString kann ich leider das Quote char nicht angeben.
Somit bringt das auch nichts.
Feld1 := '"F1"';
Feld2 := '"F2"';
Feld3 := '"(§§")"';
Feld4 := '"F4, F5"';
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Hallo Sir Rufo,
in der Doku zu DeQuotedString eindeutig dass das übergebene Quote char am Anfang und am Ende entfernt wird.
In meinem Beispiel entfernt er alle.
Feld3 := '"(§§")"';
memo.Lines.Add(Feld3.DeQuotedString('"'));
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Das ist der richtige Hinweis! Die Methode Split ist nicht dafür geeignet. Ich habe seit Delphi5 eine eigene Methode die das alles berücksichtigt. Ich dachte die kann ich vergessen wenn Delphi das jetzt integriert hat.
Dankeschön.
Gruß Kostas
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Hallo Zusammen,
es kommt noch schlimmer:
ich habe in einem Feldinhalt das: (§§") also Quote ich das Feld zu "(§§")"
Split erkennt das nicht sauber wenn ich Start und Ende Quote char angebe.
procedure TForm1.Button3Click(Sender: TObject);
var s,n:string;
splited:TArray<String>;
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Hallo Sir Rufo,
habe ich ausprobiert. bei None (default) kommt genau das raus wie bei mir.
Bei ExcludeEmpty werden alle leeren Felder entfernt. Das ist noch viel schlimmer da sich die Anzahl der Felder permanent ändern würde.
Gruß Kostas
Forum: Programmieren allgemein
by Kostas,
19. Jun 2016
Hallo Zusammen,
hat jemand eine Erklärung dafür warum die Split Methode ein ArrayItem weniger hat wenn das letzte Element leer ist?
Wenn ich Feld1-Feld4 jeweils mit einem String befülle und die Länge abfrage bekomme den richtigen Wert Length(splited) = 4.
Ist das letzte Feld4 jedoch leer, ist Length(splited) = 3. Das kann doch nicht sein oder?
procedure TForm1.Button3Click(Sender:...