Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Sonderzeichen verarbeiten mit StringList (https://www.delphipraxis.net/173697-sonderzeichen-verarbeiten-mit-stringlist.html)

piirate 11. Mär 2013 15:01

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:

Der schöne Günther 11. Mär 2013 15:11

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.

Bummi 11. Mär 2013 15:12

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;

DeddyH 11. Mär 2013 15:16

AW: Sonderzeichen verarbeiten mit StringList
 
StrictDelimiter in Delphi 7?

[edit] Hilft das hier evtl. weiter?
Delphi-Quellcode:
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;
[/edit]

p80286 11. Mär 2013 15:23

AW: Sonderzeichen verarbeiten mit StringList
 
Eine andere Möglichkeit wäre
Delphi-Quellcode:
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);
als Anregung

Gruß
K-H

piirate 11. Mär 2013 15:30

AW: Sonderzeichen verarbeiten mit StringList
 
Also das Problem liegt an den Sonderzeichen,
ich glaub ich hab den Fehler gefunden...

Delphi-Quellcode:
for i:=1 to Length(tmp) do begin
      if Pos(Copy(tmp,i,1),'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ/- ') = 0 then begin
         delim := tmp[i];
         break;
      end;
ich muss hier einfach die Sonderzeichen eintragen denke ich, dann haut das hin.

Speichern funktioniert nun. Aber die Darstellung ist immer noch Falsch, bekomme dann nur komische Blöcke für die Sonderzeichen...

DeddyH 11. Mär 2013 15:35

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?

piirate 11. Mär 2013 15:39

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.

DeddyH 11. Mär 2013 15:42

AW: Sonderzeichen verarbeiten mit StringList
 
Und mit Sonderzeichen meinst Du Umlaute, "&", "%" usw.? Verwenden DB und Programm auch denselben Zeichensatz?

piirate 11. Mär 2013 15:44

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.
Seite 1 von 2  1 2      

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