SDF/fr
│
English (en) │
français (fr) │
SDF est format de fichier en texte délimité utilisé dans Delphi (et ensuite par Free Pascal) qui est très proche de 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.
Format SDF
Un résumé du format SDF comme utilisa dans TStringList, comme paraphrasé/synthétisé de diverses versions de l'aide Delphi (p.ex. DelimitedText, StrictDelimiter)
- 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)).
- En outre, un QuoteChar dans une chaîne doit être répété.
- Lorsque vous définissez DelimitedText, les chaînes doivent être séparées par des caractères Delimiter ou des espaces.
- Les chaînes doivent être encadrées par des QuoteChars.
- Les QuoteChars dans la chaîne doivent être répétés pour les distinguer des QuoteChars qui entourent la chaîne.
- Les Delimiters qui ne sont pas contenus dans des marques QuoteChar doivent être maniés comme des délimiteurs.
- Si StrictDelimiter est à False, les espaces qui ne sont pas contenus dans des marques QuoteChar doivent être traités comme des délimiteurs.
- Deux délimiteurs dans une lignes indique une chaîne vide.
Exemple de sortie
Exemple de sortie SDF (testé dans Delphi et FPC après application du correctif au problème 19610):
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) :
0normal_string 1includes;delimiter 2includes space 3includes"quote 4includes "quote and space 5tab character 6"single_starting_quote 7multi line. 8 SpacesInFront 9SpacesAtTheEnd
donne la sortie telle que ceci avec la propriété StrictDelimiter à True (et ; comme délimiteur) :
normal_string;"includes;delimiter";includes space;"includes""quote";"includes ""quote and space";tab character;"""single_starting_quote";multi line.; SpacesInFront;SpacesAtTheEnd
... et sort ceci avec StrictDelimiter à False :
normal_string;"includes;delimiter";"includes space";"includes""quote";"includes ""quote and space";"tab character";"""single_starting_quote";"multi line.";" SpacesInFront";"SpacesAtTheEnd "
Voir aussi
- CSV un format proche.
- un correctif qui améliore les entrées/sorties en SDF
- TSdfDataSet