Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как просмотреть текст DOS? [D5, Win95/98, WinME, NT4, Win2k, WinXP]


Страницы:   1 2

b69 ©   (2002-12-29 17:09:00) 

Как просмотреть текст DOS RichEdit"ом(без помощи функции OemToChar)? Ставлю Font.Charset:=OEM_CHARSET и ничего не происходит.


Anatoly Podgoretsky   (2003-01-02 11:06:00) [1]

При желании его можно еще улучшить, но это за счет эргономики и зависит от задачи


b69   (2003-01-02 10:41:00) [2]

>Anatoly Podgoretsky ©
Извиняюсь, алгоритм действительно быстрый, это у меня чё-то комп глючило, спасибо.


Song   (2003-01-01 19:18:00) [3]

:-)


Anatoly Podgoretsky   (2003-01-01 18:41:00) [4]


SL := TStringList.Create;
SL.LoadFromFile("1.txt");
S1 := SL.Text; // вот здесь сейчас 50+ мб

T := GetTickCount;
S2 := CvtStr(S1, Cp1251to866);
Label1.Caption := IntToStr(GetTickCount-T);


b69   (2003-01-01 18:27:00) [5]

Я скачал исходник Text Convertor"a с вашего сайта, итак быстро этот алгоритм не работает. А 50 мб за 1.4 сек на P3/650 мгц - это круто. А может быть исходничек как-нибудь... plz...


Anatoly Podgoretsky   (2003-01-01 18:24:00) [6]

Что ты скачал и где не знаю и как ты работаешь с данными тоже загадка, но я специально провел измерение на 50 мб строке, 1.4 сек - P3/650 мгц


b69   (2003-01-01 18:15:00) [7]

А может я не тот исходник скачал. Я скачал Text Convertor, и что-то не похоже, по крайней мере на моём компе, чтобы алгоритм переводил 35-70 мегабайт в секунду.


b69   (2003-01-01 18:10:00) [8]

Где не верно?


deep.1   (2003-01-01 14:57:00) [9]

А линк непросвещеннм людям можно?


Anatoly Podgoretsky   (2003-01-01 11:14:00) [10]

Скорость всегда можно повысить, если оптимизировать алгоритм, но не думаю, что 35-70 мегабайт секунду это медленно, у тебя что то неверно в консерватории.


b69   (2003-01-01 10:12:00) [11]

Да, у вас отличный сайт, нашёл то, что мне нужно, но к сожалению этот олгаритм слишком медленно работает. Есть ли ещё какие-нибудь способы перевода текста из OEM в ANSI?


Anatoly Podgoretsky   (2002-12-30 16:59:00) [12]

OemToChar работает на всех ОС, но только для Oem To ANSI, а это не одно и тоже, что и 866 To 1251

Таблица перекодировки, где индексом является входной алфафит, а знычением выходной алфафит, y = f(x)

сh := CvtTable[ch]

Готовая реализация есть на моем сайте.


b69   (2002-12-30 16:58:00) [13]

Уважаемый MBo

var s:string;

S := RichEdit1.Lines.Text;
OemToChar(PChar(S), PChar(S));
RichEdit1.Lines.Text := S;

не работает. После OemToChar(PChar(S), PChar(S)) строка S="".
Так как же работает эта функция?


b69   (2002-12-30 16:56:00) [14]

А что за сайт?


Anatoly Podgoretsky   (2002-12-30 16:51:00) [15]

OemToChar работает на всех ОС, но только для Oem To ANSI, а это не одно и тоже, что и 866 To 1251

Таблица перекодировки, где индексом является входной алфафит, а знычением выходной алфафит, y = f(x)

сh := CvtTable[ch]

Готовая реализация есть на моем сайте.


b69   (2002-12-30 16:05:00) [16]

То есть OemToChar не вовсех ОС работает? А своя функция перобзования - можно пример?


Anatoly Podgoretsky   (2002-12-30 09:14:00) [17]

Если у тебя с OemToChar будет показывать, то это будет означать, что у тебя порушенная система, наиболее вероятно в области шрифтов.
Ты перечислил большое количество операционнок, это подразумевает, что программа предполагается для установки на многих компьютерах, в связи с этим высока вероятность не совпадение локализаций с 866/1251. Поэтому я бы порековмендовал не использовать OemToChar, а заменить его на свою функцию перобзования из 866 в 1251 или из твоих OEM/ANSI, если у тебя другие кодовые страницы, тогда ты не будешь зависить от локализации.


MBo   (2002-12-30 08:53:00) [18]

есть секрет - выделение памяти


b69   (2002-12-30 08:52:00) [19]

А у меня, чуть выше, не то написано? Или же здесь есть какой-то секрет...?


MBo   (2002-12-30 08:32:00) [20]

var s:string;

S := RichEdit1.Lines.Text;
OemToChar(PChar(S), PChar(S));
RichEdit1.Lines.Text := S;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо