Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-26039
gyg
2002-04-16 21:19
2002.05.09
Можно ли узнать имя пользователя в Interbase?


1-26195
kull
2002-04-25 11:24
2002.05.09
MSXML тормозной.


3-26045
Alex G
2002-04-15 03:02
2002.05.09
А можно посредством SQL ...


1-26085
mio
2002-04-24 16:57
2002.05.09
Нестандартная шапка TListView


1-26126
andrey_pst
2002-04-24 06:47
2002.05.09
OpenDialog для выбора каталогов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский