![]() |
Delphi-Version: 7
Sonderzeichen verarbeiten mit StringList
Hallo, ich such jezt schon den ganzen Tag aber komme leider nicht weiter.
Mein IST Zustand: Ich lese meine Zwischenablage in die Stringlist und will diese Daten in eine Datenbank schreiben. Alles kein Problem, bis ich halt Sonderzeichen einfüge. Ab dem Zeitpunkt geht dann gar nichts mehr. SOLL Zustand: Naja ich soll auch die Sonderzeichen irgendwie einfügen können. Beispieldaten: Hund,4 Also ich such dann nach dem Delimiter (',') und füge die 2 Daten dann in eine Tabelle ein..
Delphi-Quellcode:
procedure addItems();
var ts : TStringList; begin ts := TStringList.Create; ts.Text := Clipboard.AsText; delim := ','; for i:=0 to ts.Count-1 do begin if Trim(ts[i]) > '' then begin tmp := Uppercase(ts[i]); break; end; end; if trim(tmp) = '' then exit; for i:=1 to Length(tmp) do begin if Pos(Copy(tmp,i,1),'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ/- ') = 0 then begin delim := tmp[i]; break; end; end; QryData.Post; Ich hoffe jemand kann mir helfen :oops: |
AW: Sonderzeichen verarbeiten mit StringList
Hallo - Ich würde noch gerne wissen, ab wo genau nichts mehr geht.
Setz doch mal ein paar Haltepunkte und schau mal, wo er hängenbleibt. |
AW: Sonderzeichen verarbeiten mit StringList
kann es sein dass Du etwas in der Art suchst?
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var ts, fields: TStringList; i,j:Integer; begin ts := TStringList.Create; fields := TStringList.Create; try ts.Text := Clipboard.AsText; fields.Delimiter := ','; fields.StrictDelimiter := true; for I := 0 to ts.Count - 1 do begin fields.DelimitedText := ts [i]; for j := 0 to fields.Count - 1 do TuetwasMitFeld(fields[j]); end; finally ts.Free; fields.Free; end; end; |
AW: Sonderzeichen verarbeiten mit StringList
StrictDelimiter in Delphi 7?
[edit] Hilft das hier evtl. weiter?
Delphi-Quellcode:
[/edit]
procedure SplitString(const Src: string; Delimiter: char;
DestList: TStrings); var PLast, PCurrent: PChar; s: string; begin Assert(Assigned(DestList)); DestList.BeginUpdate; try DestList.Clear; PLast := PChar(Src); PCurrent := PChar(Src); while PCurrent^ <> #0 do begin if PCurrent^ = Delimiter then begin SetString(s, PLast, PCurrent - PLast); DestList.Add(s); PLast := CharNext(PCurrent); end; PCurrent := CharNext(PCurrent); end; SetString(s, PLast, PCurrent - PLast); DestList.Add(s); finally DestList.EndUpdate; end; end; |
AW: Sonderzeichen verarbeiten mit StringList
Eine andere Möglichkeit wäre
Delphi-Quellcode:
als Anregung
p:=pos(',',satz);
if p>1 then begin repeat liste.add(copy(satz,1,p-1); delete(satz,1,p); p:=pos(',',satz); until p=0; end; liste.add(satz); Gruß K-H |
AW: Sonderzeichen verarbeiten mit StringList
Also das Problem liegt an den Sonderzeichen,
ich glaub ich hab den Fehler gefunden...
Delphi-Quellcode:
ich muss hier einfach die Sonderzeichen eintragen denke ich, dann haut das hin.
for i:=1 to Length(tmp) do begin
if Pos(Copy(tmp,i,1),'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ/- ') = 0 then begin delim := tmp[i]; break; end; Speichern funktioniert nun. Aber die Darstellung ist immer noch Falsch, bekomme dann nur komische Blöcke für die Sonderzeichen... |
AW: Sonderzeichen verarbeiten mit StringList
Mich beschleicht das Gefühl, ich habe das Problem nicht verstanden :gruebel:. Mal anders gefragt: was kommt rein, und was soll rauskommen?
|
AW: Sonderzeichen verarbeiten mit StringList
Rein kommt ein String der durch einen Delimiter getrennt ist.
z.B. T100,3 Ersterer Wert ist eine Identifikationsnummer und letzterer eine Menge. Diese Werte sollen getrennt, in die Datenbank und in ein TDBGrid geschrieben werden. Funktioniert mit dem Code auch. Nur eben bei Sonderzeichen bei der Identifikationsnummer hab ich nun Probleme mit der Darstellung im Grid. |
AW: Sonderzeichen verarbeiten mit StringList
Und mit Sonderzeichen meinst Du Umlaute, "&", "%" usw.? Verwenden DB und Programm auch denselben Zeichensatz?
|
AW: Sonderzeichen verarbeiten mit StringList
In der Datenbank steht es richtig drin.
Ich glaub ich meine die falschen Sonderzeichen :oops: Nicht nur unsere sodern auch Slowenische usw.. z.B. Š,.. Wo sehe ich den Zeichensatz, den dass Programm benutzt? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz