Frage

Ich habe mich gefragt - gibt es einen Standard (wie ein RFC) für das .sch Schema-Dateiformat der BDE verwendet

?

Das Format wird beschrieben hier und hier . Es scheint, basierend auf dieses Microsoft-Format , aber es ist nicht ganz die gleiche .

Beispiel 1 - VARYING-Format-Datei

CUSTOMER.SCH:

[CUSTOMER]
Filetype=VARYING
Delimiter="
Separator=,
CharSet=ascii
Field1=Customer No,Float,20,04,00
Field2=Name,Char,30,00,20
Field3=Phone,Char,15,00,145
Field4=First Contact,Date,11,00,160

CUSTOMER.TXT:

1221.0000,"Kauai Dive Shoppe","808-555-0269",04/03/1994
1231.0000,"Unisco","809-555-3915",02/28/1994
1351.0000,"Sight Diver","357-6-876708",04/12/1994
1354.0000,"Cayman Divers World Unlimited","809-555-8576",04/17/1994
1356.0000,"Tom Sawyer Diving Centre","809-555-7281",04/20/1994

Beispiel 2 - FIXED-Format-Datei

CUSTOMER.SCH:

[CUSTOMER]
Filetype=Fixed
CharSet=ascii
Field1=Customer No,Float,20,04,00
Field2=Name,Char,30,00,20
Field3=Phone,Char,15,00,145
Field4=First Contact,Date,08,00,160

CUSTOMER.TXT:

           1221.0000Kauai Dive Shoppe             808-555-0269   04/03/94
           1231.0000Unisco                        809-555-3915   02/28/94
           1351.0000Sight Diver                   357-6-876708   04/12/94
           1354.0000Cayman Divers World Unlimited 809-555-8576   04/17/94
           1356.0000Tom Sawyer Diving Centre      809-555-7281   04/20/94

Ich bin besonders interessiert an dem möglichen Argument-Wert für ‚Dateityp‘, ‚Trennzeichen‘, ‚Separator‘ und ‚CharSet‘. Ich habe im Internet gesucht mit verschiedenen Begriffen ( 'RFC', 'Schema', 'Dateityp', 'Standard', usw.), aber kam leer ...

Dinge, die ich möchte genau wissen:

  • Welche Codierung (en) für die SCH-Datei selbst verwendet werden? (Dies ist relevant für den richtigen Feldnamen und andere konfigurierbare Zeichen zu interpretieren.)
  • Wie soll ich angeben, nicht druckbare Separator und Trennzeichen, beispielsweise ein Ansi Steuer-Zeichen wie "Unit Separator" ($ 1F) oder auch ein einfaches "Tab" ($ 09)? (In Anbetracht des Alters des Formats ich glaube, ich Caret Schreibweise verwenden sollte, aber es würde nur um sicher sein mögen.)
  • Wie kann ich ein Trennzeichen nicht verwenden angeben? Soll ich einen leeren Wert specifiy, oder die Einstellung auslassen insgesamt?

TIA

PS: Beachten Sie, ich bin die BDE nicht mit sich selbst - es ist nur diese Schema-Dateien, die ich habe zu erzeugen und lesen richtig

.
War es hilfreich?

Lösung

Suchen Sie Ihre Festplatte nach einer Datei namens bde32.hlp dass mit Borland Delphi installiert ist. Es ist eine Windows-Hilfedatei, die eine Dokumentation des BDE-API enthält. Es enthält auch ein Thema „Bindung externen Schema Tabellen in Text“ betitelt, die das Format der * .sch Dateien beschreibt.

Unter dem Titel „Sprache Treiber“, die gleiche Hilfe-Datei enthält auch eine Liste der „Kurznamen“, die für den CharSet Eintrag in der * .sch-Datei angegeben werden können.

So zum Beispiel, wenn Sie die Windows-Zeichensatz für westeuropäische Sprachen (Windows-1252) verwenden möchten, dass Sie sich für Französisch akzentuierten Zeichen oder Umlaute benötigen, ist der Wert, verwenden für CharSet ANSIINTL wie folgt aus:

[CUSTOMER]
Filetype=VARYING
Delimiter="
Separator=,
CharSet=ANSIINTL

  

Welche Codierung (en) für die verwendet werden,   .sch Datei selbst? (Dies ist relevant   für richtig zu interpretieren die   Feldnamen und andere konfigurierbare   Zeichen).

Just plain ASCII. Es gibt kein Szenario, das erfordern würde, oder lassen Sie 0-127 und von denen alles anderes als guten alten ASCII-Zeichen mit Zeichencodes verwenden (mit Ausnahme von Zeilenumbrüchen, die verschiedenen Linien zu trennen) nur druckbare Zeichen sinnvoll sind.

Zum Beispiel, keine anderen Zeichen (Umlaute, Akzente Zeichen, usw.) sind in den Tabellennamen oder Spaltennamen erlaubt.

  

Wie soll ich nicht druckbare angeben   Separator und Trennzeichen Zeichen,   beispielsweise eine ANSI-Zeichensteuer   wie "Unit Separator" ($ 1F) oder sogar ein   einfach "Tab" ($ 09)? (Angesichts des Alters von   das Format Ich denke, ich sollte Caret verwenden   Notation, aber es würde einfach sein mag   sicher.)

Nicht möglich. Nur „sichtbar“ Zeichen können als Trennzeichen und Trennzeichen verwendet werden. Um eine Registerkarte zu verwenden, nur eine leere Zuordnung verwenden:

[CUSTOMER]
Filetype=VARYING
Delimiter="
Separator=
CharSet=ANSIINTL
  

Wie kann ich eine nicht-Verwendung angeben,   Trennzeichen? Sollte ich eine leere specifiy   Wert oder die Einstellung auslassen   zusammen?

Im „Fixed“ Format, keine Separatoren und keine Trennzeichen verwendet. In „Unterschiedlich“ Format wird ein Trennzeichen immer für Spalten mit Zeichenkette / Zeichentyp verwendet wird und ein Trennzeichen ist nie für andere Spaltentypen verwendet. Um nicht ein Trennzeichen zu verwenden, nur eine leere Zuordnung im Schema verwenden:

[CUSTOMER]
Filetype=VARYING
Delimiter=
Separator=,
CharSet=ANSIINTL

Andere Tipps

Es wird wirklich schwer, eine endgültige Antwort auf Ihre Frage zu erhalten. BDE wurde seit Jahren als veraltet, und die meisten der ursprünglichen Entwickler haben andere Jobs weitergegangen.

Wenn ich recht erinnert, der Text (später ASCII) Unterstützung der BDE war bereits dort, als es zuerst ODAPI genannt wurde und später IDAPI (Independent Datenbank-API, eine gemeinsame Entwicklung von Borland, Novell, IBM und Wordperfect in den frühen 90er Jahren).

In der Zwischenzeit wurde Borland Inprise, zog seinen Fokus auf den Enterprise-Markt, wurde wieder Borland, getrennt, um die Entwickler-Tools und Datenbanken Gruppe in CodeGear und verkauft CodeGear zu Embarcadero (die schließlich war Entwickler centric wieder).

Ich werde versuchen, mit etwas Anständiges und erweitern Sie diese Antwort später zu kommen, oder fragen, um unter DelphiLive! nächste Woche.

Hang on: -)

Bearbeiten 1 : einige weitere Informationen

Unterstützung für ASCII ist in idasci32.dll

Wert Werte für diese Felder:

Dateityp:

  • Fixed
  • Trennzeichen

Trennzeichen: unbekannt

Separator: unbekannt

CharSet:

  • ascii
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top