AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi StringList -> StringReplace "verschluckt" letztes Zeichen
Thema durchsuchen
Ansicht
Themen-Optionen

StringList -> StringReplace "verschluckt" letztes Zeichen

Ein Thema von incognito · begonnen am 27. Mär 2008 · letzter Beitrag vom 27. Mär 2008
Antwort Antwort
incognito

Registriert seit: 12. Mär 2008
Ort: Schwerin
16 Beiträge
 
#1

StringList -> StringReplace "verschluckt" letzt

  Alt 27. Mär 2008, 14:59
Hallo Leute,

zum Einlesen einer csv-Datei in meine Datenbank benutze ich zwei Stringlisten:

Delphi-Quellcode:

....

var
  masterslist : TStringList;
  detailslist : TStringList;
  index : Integer;
begin
  masterslist := TStringList.Create;
  detailslist := TStringList.Create;
  try
    detailslist.Delimiter := ';';
    masterslist.LoadFromFile(Edit_DATEI.Text);
    for index := 1 to Pred (masterslist.Count) do
    begin
      detailslist.Clear;
      detailslist.DelimitedText := '"' + StringReplace(masterslist.Strings[index],';','";"',[rfReplaceAll]);
     //ShowMessage(masterslist.Strings[index]);
     //ShowMessage(detailslist.Strings[3]);

....
Wenn ich mir die Strings der Masterlist ansehe (showMessage) dann stimmt noch alles, sehe ich mir den letzten String in der Detailslist an, dann fehlt der letzte Buchstabe des String. Wenn hinter dem letzten Buchstaben, also vor dem Zeilenende, ein Leerzeichen steht, dann fehlt der letzte Buchstabe nicht. Ich hab keine Ahnung, woran das liegen kann?!? Ich hoffe ihr könnt mir da weiterhelfen und habt evtl. einen Tip, wie ich das Problem lösen kann?!?!

Danke schonmal!

Jana
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 15:37
Ist den ".DelimitedText" die richtige eigenschaft?

Bräuchtest du nicht ".Text"? Ist aber nur geraten, da ich mich noch nicht so mit ".DelimitedText" auseinandergesetzt habe.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:04
Müsst es nicht heissen:
for index := 0 to masterslist.Count -1 do und anstelle von
detailslist.Delimiter := ';'; würde ich mal dies probieren:
masterslist.Delimiter := ';';
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
incognito

Registriert seit: 12. Mär 2008
Ort: Schwerin
16 Beiträge
 
#4

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:07
Zitat von xZise:
Ist den ".DelimitedText" die richtige eigenschaft?

Bräuchtest du nicht ".Text"? Ist aber nur geraten, da ich mich noch nicht so mit ".DelimitedText" auseinandergesetzt habe.

MfG
xZise
Hallo xZise,

ich möchte die einzelnen Einträge einer Zeile

Eintrag A;Eintrag B;Eintrag C
Eintrag A;Eintrag B;Eintrag C


in jeweils eine Spalte (A,B,C) der DB-Tabelle schreiben. Die "Spalten" sind mit ' ; ' getrennt und mit DelimitedText kann ich mit dem Delimiter angeben, wonach die Spalten getrennt werden sollen. Die Eigenschaft TEXT trennt glaub ich nach Zeilenumbruch, bin mir nicht ganz sicher.

In meinem Fall fehlt nun allerdings immer der Buchstabe C ...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:11
Ein Leerzeichen immer auch ein Trenner. Ab D7 kann man das durch Setzen der Eigenschaft .StrictDelimiter auf True unterbinden.
Markus Kinzler
  Mit Zitat antworten Zitat
incognito

Registriert seit: 12. Mär 2008
Ort: Schwerin
16 Beiträge
 
#6

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:17
Hallo RavenIV,


Zitat von RavenIV:
Müsst es nicht heissen:
for index := 0 to masterslist.Count -1 do
Die Funktion PRED gibt den Vorgänger zurück, sollte also auf dasselbe hinauslaufen

Zitat von RavenIV:
und anstelle von
detailslist.Delimiter := ';'; würde ich mal dies probieren:
masterslist.Delimiter := ';';
Die Masterlist muss ja eigentlich nicht schon getrennt werden. Soll erstmal Zeile für Zeile die Datei einlesen. Die Strings müssen dann in der detailslist getrennt werden, damit ich sie in die Spalten einlesen kann. Oder warum meinst du, sollte ich den Delimiter für die Masterlist setzen??
  Mit Zitat antworten Zitat
incognito

Registriert seit: 12. Mär 2008
Ort: Schwerin
16 Beiträge
 
#7

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:21
Zitat von mkinzler:
Ein Leerzeichen immer auch ein Trenner. Ab D7 kann man das durch Setzen der Eigenschaft .StrictDelimiter auf True unterbinden.
Wo kann ich diese Eigenschaft setzen? Bei meiner Stringlist wird sie mir nicht angeboten.
Merkwürdig ist ja, das gerade MIT dem Leerzeichen am Ende der letzte Buchstabe da ist. Nur wenn keins am Ende steht, fehlt das letzte Zeichen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 16:26
Welche Delphiversion hast du?
Markus Kinzler
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#9

Re: StringList -> StringReplace "verschluckt" l

  Alt 27. Mär 2008, 17:26
Schau dir mal den Post an. Denke, er ist genau das was du brauchst. <HTH>
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz