Главная страница
    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
1-26164
Asphix
2002-04-25 11:06
2002.05.09
Memo :(


1-26076
SPeller
2002-04-26 12:00
2002.05.09
Лимит в INI файле


3-25994
SergeyDon
2002-04-15 14:35
2002.05.09
InterBase хранимые процедуры.


14-26250
vopros
2002-03-29 15:43
2002.05.09
Гибнет форум (этот).IronHawk задай еще пару вопросов а?


1-26184
MPro
2002-04-25 15:31
2002.05.09
comboboxex глючит?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский