Difference between revisions of "SDF/fr"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{SDF}} {{Infobox databases/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 s...")
 
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
  
 
== Format SDF ==
 
== Format SDF ==
A summary of the SDF format as used in [[TStringList]], as paraphrased/synthesized from various versions of Delphi help (e.g. [http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.DelimitedText DelimitedText], [http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.StrictDelimiter StrictDelimiter])
+
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. [http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.DelimitedText DelimitedText], [http://docwiki.embarcadero.com/Libraries/en/System.Classes.TStrings.StrictDelimiter StrictDelimiter])
* If you get DelimitedText, strings that include spaces, Delimiter (e.g. ,) or QuoteChar '''must''' be enclosed in QuoteChars (" by default) aka quoted. (In practice - read Delphi does this -, however, with StrictDelimiter on, e.g. spaced text is not quoted)
+
* 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)).
* In addition, a QuoteChar in a string '''must''' be repeated.
+
* En outre, un QuoteChar dans une chaîne '''doit''' être répété.
* When setting DelimitedText, strings '''must''' be separated by Delimiter characters '''or''' spaces.
+
* Lorsque vous définissez DelimitedText, les chaînes '''doivent''' être séparées par des caractères Delimiter '''ou''' des espaces.
* Strings '''may''' be enclosed in QuoteChars.
+
* Les chaînes doivent être encadrées par des QuoteChars.
* QuoteChars in the string '''must''' be repeated to distinguish them from the QuoteChars enclosing the string.
+
* Les QuoteChars dans la chaîne '''doivent''' être répétés pour les distinguer des QuoteChars qui entourent la chaîne.
* Delimiters that are not contained within QuoteChar marks '''must''' be handled as delimiters
+
* Les Delimiters qui ne sont pas contenus dans des marques QuoteChar '''doivent''' être maniés comme des délimiteurs.
* If StrictDelimiter is false, spaces that are not contained within QuoteChar marks '''must'' be handled as delimiters.
+
* Si StrictDelimiter est à False, les espaces qui ne sont pas contenus dans des marques QuoteChar ''doivent'' être traités comme des délimiteurs.
* Two Delimiters in a row indicate an empty string.
+
* Deux délimiteurs dans une lignes indique une chaîne vide.
  
 
== Exemple de sortie ==
 
== Exemple de sortie ==
Example SDF output (tested in Delphi and FPC after applying the patch for issue 19610):
+
Exemple de sortie SDF (testé dans Delphi et FPC après application du correctif au problème 19610):
{{Note|FPC versions below 2.6.0 do not generate SDF according to the specification}}
+
{{Note|Les versions de FPC versions antérieures à 2.6.0 ne génère pas de SDF respectant la spécification}}
This series of strings in a stringlist (note: numbers in front indicate the field for clarity, they are not part of the data):
+
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
 
  0normal_string
Line 32: Line 32:
 
  9SpacesAtTheEnd
 
  9SpacesAtTheEnd
  
gets output as this with ''StrictDelimiter'' true (and ; as delimiter):
+
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
 
  normal_string;"includes;delimiter";includes space;"includes""quote";"includes ""quote and space";tab character;"""single_starting_quote";multi
 
  line.;  SpacesInFront;SpacesAtTheEnd   
 
  line.;  SpacesInFront;SpacesAtTheEnd   
  
... and output as this with ''StrictDelimiter'' false:
+
... et sort ceci avec ''StrictDelimiter'' à False :
 
  normal_string;"includes;delimiter";"includes space";"includes""quote";"includes ""quote and space";"tab character";"""single_starting_quote";"multi
 
  normal_string;"includes;delimiter";"includes space";"includes""quote";"includes ""quote and space";"tab character";"""single_starting_quote";"multi
 
  line.";"  SpacesInFront";"SpacesAtTheEnd  "
 
  line.";"  SpacesInFront";"SpacesAtTheEnd  "
Line 45: Line 45:
 
* [http://bugs.freepascal.org/view.php?id=19610 un correctif qui améliore les entrées/sorties en SDF]
 
* [http://bugs.freepascal.org/view.php?id=19610 un correctif qui améliore les entrées/sorties en SDF]
 
* [[TSdfDataSet/fr|TSdfDataSet]]
 
* [[TSdfDataSet/fr|TSdfDataSet]]
 +
<br/>

Latest revision as of 07:33, 15 June 2017

English (en) français (fr)

Portail de la base de données

Références:

Tutoriels/articles pratiques :

Bases de données

Advantage - MySQL - MSSQL - Postgres - Interbase - Firebird - Oracle - ODBC - Paradox - SQLite - dBASE - MS Access - Zeos

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):

Light bulb  Remarque: Les versions de FPC versions antérieures à 2.6.0 ne génère pas de SDF respectant la spécification

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