Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Вниз

Кодировка таблицы 


ppp   (2002-03-18 11:06) [0]

Здравствуйте, господа программисты!

Имеется таблица .DBF в ДОСовской кодировке, необходимо с помощью SQL (INSERT ...) перекинуть данные в таблицу .DB Win-досовской кодировки.

Как это сделать?



Alex_S_   (2002-03-18 12:40) [1]

Unit WDConv;

interface

Function WinToDosConvert(IString:ShortString):ShortString;
Function DosToWinConvert(IString:ShortString):ShortString;

Implementation

Const WinTable:Array[0..255] of Byte=(
$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$A4,
$10,$11,$12,$13,$B6,$A7,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,
$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,
$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,
$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,
$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,
$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,
$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,
$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF,
$2D,$2D,$2D,$A6,$2B,$A6,$A6,$AC,$AC,$A6,$A6,$AC,$2D,$2D,$2D,$AC,
$4C,$2B,$54,$2B,$2D,$2B,$A6,$A6,$4C,$E3,$A6,$54,$A6,$3D,$2B,$A6,
$A6,$54,$54,$4C,$4C,$2D,$E3,$2B,$2B,$2D,$2D,$2D,$2D,$A6,$A6,$2D,
$F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF,
$A8,$B8,$AA,$BA,$AF,$BF,$A1,$A2,$B0,$95,$B7,$76,$B9,$A4,$A6,$A0);

DosTable:Array[0..255] of Byte=(
$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F,
$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F,
$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F,
$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,
$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F,
$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$5F,
$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F,
$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,
$C0,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF,
$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD,$DE,$DF,
$F0,$F1,$F2,$F3,$F4,$F5,$B3,$F7,$F8,$F9,$FA,$FB,$2B,$FD,$FE,$FF,
$B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF,
$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F,
$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F,
$A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF,
$E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF);

Var
OutString:String;

Function WinToDosConvert(IString:ShortString):ShortString;
Var Index:Byte;
begin
If Length(IString)>0 then
begin
SetLength(OutString,Length(IString));
For Index:=1 to Length(IString) do
OutString[Index]:=Chr(DosTable[Ord(IString[Index])]);
end
else
OutString:=IString;
WinToDosConvert:=OutString;
end;

Function DosToWinConvert(IString:ShortString):ShortString;
Var Index:Byte;
begin
If Length(IString)>0 then
begin
SetLength(OutString,Length(IString));
For Index:=1 to Length(IString) do
OutString[Index]:=Chr(WinTable[Ord(IString[Index])]);
end
else
OutString:=IString;
DosToWinConvert:=OutString;
end;

end.



ppp   (2002-03-19 02:35) [2]

А автоматически или с помощью средств BDE можно ?!




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.025 c
3-32695           Марина                2002-03-21 15:12  2002.04.11  
Изменяемый Query


1-32757           Дима2                 2002-03-30 18:22  2002.04.11  
Задержка


14-32974          Nest                  2002-03-05 14:08  2002.04.11  
Юмор про программистов http://evny.com.ua/?hist/pmer00


1-32904           CrazyAngel            2002-03-29 23:33  2002.04.11  
Прочитать самого себя :)


1-32743           DikobraZ              2002-03-28 15:25  2002.04.11  
Программа не запускается из Дельфи... :(