SDF/fr: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | **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. | |
| 2 | 2 | ||
| 3 | 3 | ## Format SDF | |
| 4 | 4 | ||
| 5 | 5 | Un 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)) | |
| 6 | 6 | ||
| 7 | 7 | - 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)). | |
| 8 | 8 | - En outre, un QuoteChar dans une chaîne **doit** être répété. | |
| 9 | 9 | - Lorsque vous définissez DelimitedText, les chaînes **doivent** être séparées par des caractères Delimiter **ou** des espaces. | |
| 10 | 10 | - Les chaînes doivent être encadrées par des QuoteChars. | |
| 11 | 11 | - Les QuoteChars dans la chaîne **doivent** être répétés pour les distinguer des QuoteChars qui entourent la chaîne. | |
| 12 | 12 | - Les Delimiters qui ne sont pas contenus dans des marques QuoteChar **doivent** être maniés comme des délimiteurs. | |
| 13 | 13 | - Si StrictDelimiter est à False, les espaces qui ne sont pas contenus dans des marques QuoteChar *doivent* être traités comme des délimiteurs. | |
| 14 | 14 | - Deux délimiteurs dans une lignes indique une chaîne vide. | |
| 15 | 15 | ||
| 16 | 16 | ## Exemple de sortie | |
| 17 | 17 | ||
| 18 | 18 | Exemple de sortie SDF (testé dans Delphi et FPC après application du correctif au problème 19610): | |
| 19 | 19 | ||
| 20 | 20 | > **Note:** Les versions de FPC versions antérieures à 2.6.0 ne génère pas de SDF respectant la spécification | |
| 21 | 21 | ||
| 22 | 22 | Ces 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) : | |
| 23 | 23 | ||
| 24 | - | ||
| 25 | - | ||
| 26 | - | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - | ||
| 31 | - | ||
| 32 | - | ||
| 33 | - | ||
| 34 | - | ||
| 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 | + | ``` | |
| 35 | 37 | ||
| 36 | 38 | donne la sortie telle que ceci avec la propriété *StrictDelimiter* à True (et ; comme délimiteur) : | |
| 37 | 39 | ||
| 38 | - | ||
| 39 | - | ||
| 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 | + | ``` | |
| 40 | 44 | ||
| 41 | 45 | ... et sort ceci avec *StrictDelimiter* à False : | |
| 42 | 46 | ||
| 43 | - | ||
| 44 | - | ||
| 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 | + | ``` | |
| 45 | 51 | ||
| 46 | 52 | ## Voir aussi | |
| 47 | 53 | ||
| 48 | 54 | - [[CSV/fr|CSV]] un format proche. | |
| 49 | 55 | - [un correctif qui améliore les entrées/sorties en SDF](http://bugs.freepascal.org/view.php?id=19610) | |
| 50 | 56 | - [[TSdfDataSet/fr|TSdfDataSet]] | |
| 51 | 57 | ||
| 52 | 58 | --- | |
| 53 | 59 | *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).* |
