AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein StringHelper Methode Split fehlerhaft?
Thema durchsuchen
Ansicht
Themen-Optionen

StringHelper Methode Split fehlerhaft?

Ein Thema von Kostas · begonnen am 19. Jun 2016 · letzter Beitrag vom 20. Jun 2016
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#1

AW: StringHelper Methode Split fehlerhaft?

  Alt 19. Jun 2016, 19:25
Falsch Exportiert?

es gibt ein vorgeschriebenes Trennzeichen das Komma und jedes Feld muss mit Anführungszeichen exportiert werden.
Ich darf den Inhalt des Feldes nicht anfassen. Was könne ich jetzt noch machen?

[Edit] oh, es hat sich erledigt. Ich darf doch maskieren!

Geändert von Kostas (19. Jun 2016 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.375 Beiträge
 
Delphi 12 Athens
 
#2

AW: StringHelper Methode Split fehlerhaft?

  Alt 20. Jun 2016, 12:49
Zitat:
"(§§")"
Es kommt auch darauf an, wie gequotet wird.

In delphi wird meistens mit dem doppelten Quote-Zeichen das Zeichen selber geqoutet.

Also "(§§"")" und in Pascal halt S := 'AGB''s \ blubb'; .
Und genau so verhällt sich auch das Quoting der TStringList.
In C-Sprachen wird dagegen gern das \ als Quotezeichen für Steuerzeichen benutzt, also S := 'AGB\'s \\ blubb'; .
(Pascal kennt dagegen garkeine Steuerzeichen, außer dem ' oder halt ", während C auch Zeilenumbrüche ala '\n' und Co. versteht)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: StringHelper Methode Split fehlerhaft?

  Alt 20. Jun 2016, 13:55
Wenn wir von CSV sprechen, dann spricht man im Allgemeinen davon was in der RFC4180 so unverbindlich definiert wurde (ist kein Standard, weil niemand sich bei CSV auf einen Standard einigen konnte, wollte).
Zitat:
  1. If double-quotes are used to enclose fields, then a double-quote appearing inside a field must be escaped by preceding it with another double quote. For example:

    "aaa","b""bb","ccc"
Und auch wenn es kein allgemeingültiger Standard ist, tut man gut daran mit allen Parteien dieses Dokument als Standard zu deklarieren. Dann gibt es viel weniger Geschrei und "Ich-wars-nicht" Bekundungen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#4

AW: StringHelper Methode Split fehlerhaft?

  Alt 20. Jun 2016, 16:00
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 exportiert. Die Fremdsoftware importiert es einwandfrei.
Also darf ich doch den Feldinhalt verändern. Somit habe ich umgestellt auf die TurboPower.Esentials.StStrL Methode.
Delphi-Quellcode:
function ExtractTokensL(const S, Delims: String;
                        QuoteChar : Char;
                        AllowNulls : Boolean;
                        Tokens : TStrings) : Cardinal; overload;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: StringHelper Methode Split fehlerhaft?

  Alt 20. Jun 2016, 17:45
Das Verdoppeln des QuoteChars bzw. das Quoten selber verändert den Feldinhalt NICHT!

Bitte nicht Struktur und Daten durcheinander würfeln.

Das kann man gut vergleichen mit dem HtmlEncode, wo aus > ein > gemacht werden muss weil das ansonsten nicht korrekt dargestellt wird.

Du hast das Transportmedium CSV und da gilt die Regel mit dem Quoten (s.o.), weil sonst am anderen Ende nur Grütze herauskommt -> Daten nicht lesbar oder werden falsch gedeutet.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#6

AW: StringHelper Methode Split fehlerhaft?

  Alt 20. Jun 2016, 21:26
Ja, habe ich verstanden.
Jetzt funktionierts und ich weis warum.
Bisher hat es eben zufällig funktioniert.
Herzlichen dank nochmals.
  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 15:20 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