Fichier Schema.ini (pilote du fichier texte)
Lorsque le pilote de texte est utilisé, le format du fichier texte est déterminé à l’aide d’un fichier d’informations de schéma. Le fichier d’informations de schéma est toujours nommé Schema.ini et toujours conservé dans le même répertoire que la source de données texte. Le fichier d’informations de schéma fournit à IISAM des informations sur le format général du fichier, le nom de colonne et les informations de type de données, ainsi que plusieurs autres caractéristiques de données. Un fichier Schema.ini est toujours nécessaire pour accéder aux données de longueur fixe. Vous devez utiliser un fichier Schema.ini lorsque votre table de texte contient des données DateTime, Currency ou Decimal, ou à tout moment où vous souhaitez plus de contrôle sur la gestion des données dans la table.
Remarque
Text ISAM obtient les valeurs initiales du Registre, et non à partir de Schema.ini. Le même format de fichier par défaut s’applique à toutes les nouvelles tables de données de texte. Tous les fichiers créés par l’instruction CREATE TABLE héritent de ces mêmes valeurs de format par défaut, qui sont définies en sélectionnant les valeurs de format de fichier dans la boîte de dialogue Définir le format de texte avec <la valeur par défaut> choisie dans la liste Tables . Si les valeurs du Registre diffèrent des valeurs de Schema.ini, les valeurs du Registre sont remplacées par les valeurs de Schema.ini.
Présentation des fichiers Schema.ini
Schema.ini fichiers fournissent des informations de schéma sur les enregistrements d’un fichier texte. Chaque entrée Schema.ini spécifie l’une des cinq caractéristiques de la table :
Nom du fichier texte
Format de fichier
Noms, largeurs et types de champs
Jeu de caractères
Conversions de types de données spéciales
Les sections suivantes décrivent ces caractéristiques.
Spécification du nom de fichier
La première entrée dans Schema.ini est toujours le nom du fichier source texte entre crochets. L’exemple suivant illustre l’entrée du fichier Sample.txt :
[Sample.txt]
Spécification du format de fichier
L’option Format dans Schema.ini spécifie le format du fichier texte. Le texte IISAM peut lire automatiquement le format à partir de la plupart des fichiers délimités par des caractères. Vous pouvez utiliser n’importe quel caractère unique comme délimiteur dans le fichier, à l’exception du guillemet double (« ). Le paramètre Format dans Schema.ini remplace le paramètre dans le Registre Windows, fichier par fichier. Le tableau suivant répertorie les valeurs valides pour l’option Format .
Spécificateur de format | Format de tableau | instruction Schema.ini Format |
---|---|---|
Tabulation délimitée | Les champs du fichier sont délimités par des onglets. | Format=TabDelimited |
Csv délimité | Les champs du fichier sont délimités par des virgules (valeurs séparées par des virgules). | Format=CSVDelimited |
Délimité personnalisé | Les champs du fichier sont délimités par n’importe quel caractère que vous choisissez d’entrer dans la boîte de dialogue. Tous à l’exception des guillemets doubles (« ) sont autorisés, y compris vides. | Format=Délimité(caractère personnalisé) -ou- Sans délimiteur spécifié : Format=Délimité( ) |
Longueur fixe | Les champs du fichier sont d’une longueur fixe. | Format=FixedLength |
Spécification des champs
Vous pouvez spécifier des noms de champs dans un fichier texte délimité par des caractères de deux façons :
Incluez les noms de champs dans la première ligne de la table et définissez ColNameHeader sur True.
Spécifiez chaque colonne par numéro et désignez le nom de colonne et le type de données.
Vous devez spécifier chaque colonne par nombre et désigner le nom de colonne, le type de données et la largeur des fichiers de longueur fixe.
Remarque
Le paramètre ColNameHeader dans Schema.ini remplace le paramètre FirstRowHasNames dans le Registre Windows, fichier par fichier.
Les types de données des champs peuvent également être déterminés. Utilisez l’option MaxScanRows pour indiquer le nombre de lignes à analyser lors de la détermination des types de colonnes. Si vous définissez MaxScanRows sur 0, le fichier entier est analysé. Le paramètre MaxScanRows dans Schema.ini remplace le paramètre dans le Registre Windows, fichier par fichier.
L’entrée suivante indique que Microsoft Jet doit utiliser les données de la première ligne de la table pour déterminer les noms de champs et examiner l’ensemble du fichier pour déterminer les types de données utilisés :
ColNameHeader=True
MaxScanRows=0
L’entrée suivante désigne les champs d’une table à l’aide de l’option numéro de colonne (Coln), qui est facultative pour les fichiers délimités par des caractères et requise pour les fichiers de longueur fixe. L’exemple montre les entrées Schema.ini pour deux champs, un champ de texte CustomerNumber de 10 caractères et un champ de texte CustomerName de 30 caractères :
Col1=CustomerNumber Text Width 10
Col2=CustomerName Text Width 30
La syntaxe de Coln est la suivante :
n=ColumnName type [Width] [#]
Notes
Le tableau suivant décrit chaque partie de l’entrée coln .
Paramètre | Description |
---|---|
ColumnName | Nom du texte de la colonne. Si le nom de colonne contient des espaces incorporés, vous devez le placer entre guillemets doubles. |
type | Les types de données sont les suivants : Types de données Microsoft Jet bit Byte Court Long Devise Unique Double Date/Heure Détails Mémo Types de données ODBC Char (identique à Text) Float (identique à Double) Entier (identique à Short) LongChar (identique à Mémo) Format de date |
Width | Valeur de chaîne Width littérale . Indique que le numéro suivant désigne la largeur de la colonne (facultatif pour les fichiers délimités par des caractères ; obligatoire pour les fichiers de longueur fixe). |
# | Valeur entière qui désigne la largeur de la colonne (obligatoire si la largeur est spécifiée). |
Sélection d’un jeu de caractères
Vous pouvez sélectionner parmi deux jeux de caractères : ANSI et OEM. Le paramètre CharacterSet dans Schema.ini remplace le paramètre dans le Registre Windows, fichier par fichier. L’exemple suivant montre l’entrée Schema.ini qui définit le jeu de caractères sur ANSI :
CharacterSet=ANSI
Spécification des formats et conversions de type de données
Le fichier Schema.ini contient plusieurs options que vous pouvez utiliser pour spécifier la façon dont les données sont converties ou affichées. Le tableau suivant répertorie chacune de ces options.
Option | Description |
---|---|
DateTimeFormat | Peut être défini sur une chaîne de format qui indique des dates et des heures. Vous devez spécifier cette entrée si tous les champs date/heure dans l’importation/exportation sont gérés avec le même format. Tous les formats Microsoft Jet, sauf A.M. et P.M. sont pris en charge. S’il n’existe aucune chaîne de format, les options d’heure et d’image de date et d’heure de Windows Panneau de configuration courtes sont utilisées. |
DecimalSymbol | Peut être défini sur n’importe quel caractère unique utilisé pour séparer l’entier de la partie fractionnaire d’un nombre. |
NumberDigits | Indique le nombre de chiffres décimaux dans la partie fractionnaire d’un nombre. |
NumberLeadingZeros | Spécifie si une valeur décimale inférieure à 1 et supérieure à -1 doit contenir des zéros non significatifs ; cette valeur peut être False (aucun zéro non significatif) ou True. |
CurrencySymbol | Indique le symbole monétaire qui peut être utilisé pour les valeurs monétaires dans le fichier texte. Les exemples incluent le signe dollar ($) et Dm. |
CurrencyPosFormat | Peut être défini sur l’une des valeurs suivantes : - Préfixe de symbole monétaire sans séparation ($1) - Suffixe de symbole monétaire sans séparation (1$) - Préfixe de symbole monétaire avec une séparation de caractères ($ 1) - Suffixe de symbole monétaire avec une séparation de caractères (1 $) |
CurrencyDigits | Spécifie le nombre de chiffres utilisés pour la partie fractionnaire d’un montant monétaire. |
CurrencyNegFormat | Peut avoir l’une des valeurs suivantes : - ($1) - -$1 - $-1 - 1 $ - (1$) - -1$ - 1-$ - 1$- - -1 $ - -$ 1 - 1 $- - $ 1- - $ -1 - 1 - $ - ($ 1) - (1 $) Cet exemple montre le signe dollar, mais vous devez le remplacer par la valeur CurrencySymbol appropriée dans le programme réel. |
CurrencyThousandSymbol | Indique le symbole à caractère unique qui peut être utilisé pour séparer les valeurs monétaires dans le fichier texte par milliers. |
CurrencyDecimalSymbol | Peut être défini sur n’importe quel caractère unique utilisé pour séparer l’ensemble de la partie fractionnaire d’un montant monétaire. |
Remarque
Si vous omettez une entrée, la valeur par défaut dans la Panneau de configuration Windows est utilisée.