Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
ВнизПроблемы с КОДИРОВКОЙ текста !!! - как изменить её ??? Найти похожие ветки
← →
KvORubin (2002-04-23 18:53) [0]У меня есть вот такой вопрос:
Попробуйте в TheBate изменить кодировку, скопировать текст
и вставить его в TMemo1 или TRichEdit1 и прочитать текст.
Как изменить charset так, чтоб можно было прочитать содержимое???
Все мои попытки сделать это не дали результатов, я пробовал изменить
шрифты и попереберать значения charset - никаких положительных
результатов к сожалению это не дало.
Что делать, каким образом TheBat меняет кодировку ???
Допустим в TRichEdit1 попал текст с другой кодировкой или
же пришло почтовое сообщение в другой кодировке, что нужно сделать
для того, чтоб прочитать этот текст ???
← →
Cobalt (2002-04-23 18:57) [1]Нужно вручную (используя таблицы перекодировок) переводить каждый символ (ты смотришь, как правило, в кодировке Win1251).
Откуда брать таблицы перекодировок - этого я не знаю ;(
← →
KvORubin (2002-04-23 19:21) [2]Да, у меня была такая таблица, я её потерял,, может есть у кого такая таблица, которая переведёт любую кодировку в удобоваримочитаемую ???
← →
KvORubin (2002-04-24 13:33) [3]ну как это сделать???
← →
Anatoly Podgoretsky (2002-04-24 13:41) [4]На моем сайте есть и перекодировщик и некоторые таблицы, как правило их хватает
← →
Chris (2002-04-24 13:45) [5]Могу предложить свой вариант.
Скопировать текст из письма в Memo1 и поиграться кодировками...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ClipBrd;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Splitter1: TSplitter;
GroupBox2: TGroupBox;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Memo2: TMemo;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label2: TLabel;
procedure MSplitter1(Sender: TObject);
procedure FormReSize(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MSplitter1(Sender: TObject);
begin
if GroupBox1.Width<Splitter1.MinSize then
GroupBox1.Width:=Splitter1.MinSize;
FormReSize(Self);
end;
procedure TForm1.FormReSize(Sender: TObject);
begin
Button1.Width:=GroupBox1.Width-16;
Button2.Width:=GroupBox2.Width-16;
Memo1.Width:=GroupBox1.Width-16;
Memo1.Height:=GroupBox1.Height-Memo1.Top-8;
Memo2.Width:=GroupBox2.Width-16;
Memo2.Height:=GroupBox2.Height-Memo1.Top-8;
Label1.Left:=Splitter1.Left+5;
ComboBox1.Left:=Splitter1.Left+3;
Label2.Left:=Splitter1.Left+5;
ComboBox2.Left:=Splitter1.Left+3;
end;
procedure TForm1.FormCreate(Sender: TObject);
var s: string;
i: integer;
begin
Button1.Caption:="Открыть";
Button2.Caption:="Сохранить в буфер";
Button2.Enabled:=False;
ComboBox1.Items.Clear;
ComboBox1.Items.Add("Windows-1251");
ComboBox1.Items.Add("KOI8-R");
ComboBox2.Items.Assign(ComboBox1.Items);
if ParamCount>0 then
begin
s:="";
for i:=1 to ParamCount do
s:=s+" "+ParamStr(i);
Delete(s,1,1);
OpenDialog1.FileName:=s;
Button1.Caption:="Файл: "+s;
Memo1.Lines.LoadFromFile(s);
end;
end;
const
Codirovka: array [0..1] of string = (
//Win
"?ЁёАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",
//Koi8-r
"ёЁ?юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
);
procedure TForm1.Memo1Change(Sender: TObject);
var i: integer;
begin
Memo2.Lines.Clear;
for i:=1 to length(Memo1.Text) do
if pos(Memo1.Text[i],Codirovka[ComboBox1.ItemIndex])>0 then
Memo2.Text:=Memo2.Text+Codirovka[ComboBox2.ItemIndex][pos(Memo1.Text[i],Codirovka[ComboBox1.ItemIndex])]
else
Memo2.Text:=Memo2.Text+Memo1.Text[i];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
Memo1Change(Self);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ClipBoard.AsText:=Memo1.Text;
end;
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c