Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.09;
Скачать: CL | DM;

Вниз

Проблемы с КОДИРОВКОЙ текста !!! - как изменить её ???   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-26182
NDVBrest
2002-04-24 18:39
2002.05.09
Работа с TThread


1-26094
Reticent
2002-04-26 15:49
2002.05.09
record !?


14-26246
QWest
2002-04-02 09:08
2002.05.09
Братва! Помогите!!!


3-26021
Ser_Kham1
2002-04-16 14:41
2002.05.09
как наилучшим образом перебросить информацию


14-26263
IronHawk
2002-04-02 15:39
2002.05.09
Приветствую Мастеров ! Есть вопрос, мне надо сохранять дату из