Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2004
tec4eso tec4eso is offline
Registrado
 
Registrado: oct 2004
Posts: 4
Poder: 0
tec4eso Va por buen camino
Cambiar idioma tablas paradox desde delphi2

Hola a todos:

Necesito importar periodicamente unas tablas paradox de un programa que estan en idioma Paradox ascii, a una aplicación en Delphi. El problema surge con las vocales acentuadas que las muestra con caracteres que no se corresponden.

He resuelto el problema manualmente con Paradox5 cambiando el idoma de las tablas (una a una) de Paradox ascii a Paradox 'intl' 850.

He intentado hacerlo utilizando funciones del dbi pero no lo consigo.

Agradeceria mucho si alguien me indicase como puedo cambiar el idioma en tiempo de ejecución desde delphi2.

Muchas gracias
Responder Con Cita
  #2  
Antiguo 03-10-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No se si funcionará desde D2, pero mírate estas funciones:
Código Delphi [-]
 
 uses
   DBTables, SYSUtils;
 
 function SetParadoxTableVersion(TablePathName : String; Version : Integer) : Boolean;
 function SetParadoxTableBlockSize(TablePathName : String; BlockSize : Integer) : Boolean;
 function SetParadoxTableLanguage(TablePathName, LangDriver : String) : Boolean;
 function SetParadoxTableStrictIntegrity(TablePathName : String; StrictIntegrity : Boolean) : Boolean;
 
 implementation
 
 uses
   DB, BDE;
 
 function RestructureParadoxTable(Table : TTable; Option, OptData: String) : Boolean;
 var
   hDb: hDBIDb;
   Res : DBIResult;
   TableDesc : CRTblDesc;
   FieldDesc : FLDDesc;
 begin
   If (Table.Active and Not Table.Exclusive) Then Table.Close;
   If (Not Table.Exclusive) Then Table.Exclusive := True;
   If (Not Table.Active) Then Table.Open;
 
   Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
 
   Table.Close;
 
   FillChar(TableDesc, SizeOf(TableDesc), 0);
   StrPCopy(TableDesc.szTblName, Table.Tablename);
   StrCopy(TableDesc.szTblType, szParadox);
 
   FieldDesc.iOffset := 0;
   FieldDesc.iLen := Length(OptData) + 1;
   StrPCopy(FieldDesc.szName, Option);
 
   TableDesc.iOptParams := 1;
   TableDesc.pFldOptParams := @FieldDesc;
   TableDesc.pOptData := @OptData[1];
   try
     Res := DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False);
     Result := (Res = DBIERR_NONE);
   finally
     Table.Open;
   end;
 end;
 
 function SetParadoxTableVersion(TablePathName : String; Version : Integer) : Boolean;
 var
   MyTable : TTable;
 begin
   MyTable := TTable.Create(Nil);
   MyTable.DatabaseName := ExtractFilePath(TablePathName);
   MyTable.TableName := ExtractFileName(TablePathName);
 
   Result := RestructureParadoxTable(MyTable, 'LEVEL', IntToStr(Version));
 
   MyTable.Free;
 end;
 
 function SetParadoxTableBlockSize(TablePathName : String; BlockSize : Integer) : Boolean;
 var
   MyTable : TTable;
 begin
   MyTable := TTable.Create(Nil);
   MyTable.DatabaseName := ExtractFilePath(TablePathName);
   MyTable.TableName := ExtractFileName(TablePathName);
 
   Result := RestructureParadoxTable(MyTable, 'BLOCK SIZE', IntToStr(BlockSize));
 
   MyTable.Free;
 end;
 
 function SetParadoxTableStrictIntegrity(TablePathName : String; StrictIntegrity : Boolean) : Boolean;
 var
   MyTable : TTable;
 begin
   MyTable := TTable.Create(Nil);
   MyTable.DatabaseName := ExtractFilePath(TablePathName);
   MyTable.TableName := ExtractFileName(TablePathName);
 
   If (StrictIntegrity) Then
     Result := RestructureParadoxTable(MyTable, 'STRICTINTEGRTY', 'TRUE')
   else
     Result := RestructureParadoxTable(MyTable, 'STRICTINTEGRTY', 'FALSE');
 
   MyTable.Free;
 end;
 
 function SetParadoxTableLanguage(TablePathName, LangDriver : String) : Boolean;
 var
   MyTable : TTable;
 begin
   MyTable := TTable.Create(Nil);
   MyTable.DatabaseName := ExtractFilePath(TablePathName);
   MyTable.TableName := ExtractFileName(TablePathName);
 
   Result := RestructureParadoxTable(MyTable, 'LANGDRIVER', LangDriver);
 
   MyTable.Free;
 end;
 
 end.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 04-10-2004
tec4eso tec4eso is offline
Registrado
 
Registrado: oct 2004
Posts: 4
Poder: 0
tec4eso Va por buen camino
Gracias por las funciones, cambia el idioma pero no corrige los caracteres de las vocales mayusculas acentuadas, como lo hace paradox5 al restructurar la tabla
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:05:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi