Sign in Join
Wiki copytemporary

SDF/fr: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11**SDF** est format de fichier en texte délimité utilisé dans Delphi (et ensuite par Free Pascal) qui est très proche de [[CSV/fr|CSV]] sans être identique. (`.sdf` est aussi l'extension des fichiers de données de Microsoft SQL Server, il n'est donc pas conseillé d'employer cette extension pour vos fichiers.
22
33## Format SDF
44
55Un résumé du format SDF comme utilisa dans [[TStringList/fr|TStringList]], comme paraphrasé/synthétisé de diverses versions de l'aide Delphi (p.ex. [DelimitedText](http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.DelimitedText), [StrictDelimiter](http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.StrictDelimiter))
66
77- Si vous obtenez DelimitedText, des chaînes incluant des espaces, Delimiter (p.ex. ,) ou QuoteChar **doivent** être encadrées par des QuoteChars (" par défaut) i.e. mises en citation. (En pratique - Lisez 'Delphi le fait' -, toutefois, avec StrictDelimiter à True, p.ex. du texte espacé n'est pas en citation (entre guillemets au sens large)).
88- En outre, un QuoteChar dans une chaîne **doit** être répété.
99- Lorsque vous définissez DelimitedText, les chaînes **doivent** être séparées par des caractères Delimiter **ou** des espaces.
1010- Les chaînes doivent être encadrées par des QuoteChars.
1111- Les QuoteChars dans la chaîne **doivent** être répétés pour les distinguer des QuoteChars qui entourent la chaîne.
1212- Les Delimiters qui ne sont pas contenus dans des marques QuoteChar **doivent** être maniés comme des délimiteurs.
1313- Si StrictDelimiter est à False, les espaces qui ne sont pas contenus dans des marques QuoteChar *doivent* être traités comme des délimiteurs.
1414- Deux délimiteurs dans une lignes indique une chaîne vide.
1515
1616## Exemple de sortie
1717
1818Exemple de sortie SDF (testé dans Delphi et FPC après application du correctif au problème 19610):
1919
2020> **Note:** Les versions de FPC versions antérieures à 2.6.0 ne génère pas de SDF respectant la spécification
2121
2222Ces séries de chaînes dans une stringlist (note : les nombres en début indiquent le champ pour la clarté, ils ne font pas partie des données) :
2323
24-`0normal_string`\
25-`1includes;delimiter`\
26-`2includes space`\
27-`3includes"quote`\
28-`4includes "quote and space`\
29-`5tab   character`\
30-`6"single_starting_quote`\
31-`7multi`\
32-`line.`\
33-`8   SpacesInFront`\
34-`9SpacesAtTheEnd`
24+```text
25+0normal_string
26+1includes;delimiter
27+2includes space
28+3includes"quote
29+4includes "quote and space
30+5tab character
31+6"single_starting_quote
32+7multi
33+line.
34+8 SpacesInFront
35+9SpacesAtTheEnd
36+```
3537
3638donne la sortie telle que ceci avec la propriété *StrictDelimiter* à True (et ; comme délimiteur) :
3739
38-`normal_string;"includes;delimiter";includes space;"includes""quote";"includes ""quote and space";tab   character;"""single_starting_quote";multi`\
39-`line.;   SpacesInFront;SpacesAtTheEnd  `
40+```text
41+normal_string;"includes;delimiter";includes space;"includes""quote";"includes ""quote and space";tab character;"""single_starting_quote";multi
42+line.; SpacesInFront;SpacesAtTheEnd
43+```
4044
4145... et sort ceci avec *StrictDelimiter* à False :
4246
43-`normal_string;"includes;delimiter";"includes space";"includes""quote";"includes ""quote and space";"tab    character";"""single_starting_quote";"multi`\
44-`line.";"   SpacesInFront";"SpacesAtTheEnd  "`
47+```text
48+normal_string;"includes;delimiter";"includes space";"includes""quote";"includes ""quote and space";"tab character";"""single_starting_quote";"multi
49+line.";" SpacesInFront";"SpacesAtTheEnd "
50+```
4551
4652## Voir aussi
4753
4854- [[CSV/fr|CSV]] un format proche.
4955- [un correctif qui améliore les entrées/sorties en SDF](http://bugs.freepascal.org/view.php?id=19610)
5056- [[TSdfDataSet/fr|TSdfDataSet]]
5157
5258---
5359*From the Free Pascal wiki, page "SDF/fr", as it stood on 2017-06-15 after a change by E-ric, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history