Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
ВнизDos>Win кодировка Найти похожие ветки
← →
Сибулбо (2004-02-08 12:08) [0]Кодировка из дос в вин, как? Есть текст в досовской код, нужно перевести в вин. код. ?
← →
Anatoly Podgoretsky (2004-02-08 12:18) [1]OemToChar
← →
Сибулбо (2004-02-08 12:57) [2]Src :=FormPlayWin.ListBox1.Items.GetText;
OemToChar(Src, Str);
FormPlayWin.ListBox1.Items.text:= StrPas(Str);
В ЧЕМ ОШИБКА? :(
← →
Anatoly Podgoretsky (2004-02-08 13:29) [3]Мало данных
← →
Сибулбо (2004-02-08 13:35) [4]Тогда так.
У меня в листбокс загружается файл, в котором кодировка досовская, (в листбоксе всякаю чушь, а не текст), так вот мне
нужно все это представить в нужно виде. И я делаю так:
var Src, Str:PChar;
begin
Src :=ListBox1.Items.GetText;
OemToChar(Src, Str);
ListBox1.Items.text:= StrPas(Str);
end;
← →
Anatoly Podgoretsky (2004-02-08 13:37) [5]А память Пушкин будет выделять?
← →
Сибулбо (2004-02-08 13:47) [6]Если не трудно, то напишите как, пожалусто :)
Не знаю :(
← →
Anatoly Podgoretsky (2004-02-08 14:05) [7]В FAQ достаточно примеров. А с указателями надо учиться или не использовать.
← →
Сибулбо (2004-02-08 14:17) [8]Вот из FAQ
procedure DosToWin;
var Src, Str:PChar;
begin
Src := Memo1.Lines.GetText; //Берем текст из TMemo как тип PChar OemToChar(Src, Str); //API функция для перевода текста
Memo2.Lines.Text := StrPas(Str);//Записываем назадend;
Я же так же делал!
← →
KilkennyCat (2004-02-08 14:33) [9]В Вашем случае необходимо использовать GetMem, ну и FreeMem соответсвенно. Небольшая бодяга - ListBox1.GetTextLen вернет ноль.
← →
Плохиш (2004-02-08 14:37) [10]Lenght(ListBox1.Items.Text) вернёт ну явно число > 0
← →
KilkennyCat (2004-02-08 14:41) [11]блин, старею...
тогда все проблемы:
var
s : pchar;
begin
getmem(s, Lenght(ListBox1.Items.Text) + 1);
oemtochar(listbox1.Items.GetText,s);
listbox1.Items.Text := string(s);
FreeMem(s);
end;
← →
Anatoly Podgoretsky (2004-02-08 14:50) [12]Сибулбо (08.02.04 14:17) [8]
Какой отвратительный FAQ ты раскопал.
← →
Anatoly Podgoretsky (2004-02-08 14:53) [13]
var
S: string;
begin
S := ListBox1.Items.Text;
if S <> "" then OemToChar(PChar(S), PChar(S));
ListBox1.Items.text := (S);
end;
← →
Verg (2004-02-08 14:54) [14]
> KilkennyCat © (08.02.04 14:41) [11]
> блин, старею...
>
> тогда все проблемы:
>
> var
> s : pchar;
> begin
> getmem(s, Lenght(ListBox1.Items.Text) + 1);
> oemtochar(listbox1.Items.GetText,s);
> listbox1.Items.Text := string(s);
> FreeMem(s);
> end;
Упс. Утечка памяти гарантирована.
listbox1.Items.GetText+F1. Последнее предложение Help-а
← →
KilkennyCat (2004-02-08 14:55) [15]почему утечка?
← →
Verg (2004-02-08 15:03) [16]
> KilkennyCat © (08.02.04 14:55) [15]
Так как про Help-то?
Не прчитали еще?
Allocates a text buffer and fills it with the value of the Text property.
function GetText: PChar; virtual;
Description
Call GetText to obtain a dynamically allocated character buffer containing all of the strings in the list. Individual strings are separated by a carriage return and (on Windows) line feed. The caller is responsible for freeing the returned value using the StrDispose procedure.
← →
KilkennyCat (2004-02-08 15:14) [17]понял, спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c