Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 10:06   #1
PRsam
Новичок
Джуниор
 
Регистрация: 08.02.2011
Сообщений: 3
По умолчанию Перевести строку с ASCII (Dos) в Win

Здравствуйте! Не получается перевести строку ASCII (Dos) что бы отобразить рус текст в listBox.
С файла копируется часть строки (кирилица).
Код:
ListBox1.Items.Add((Copy(S, p+3, L));  // на выходе каракули
Спасибо!


___________
для форматирования кода используйте
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
а не тег PHP

Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.02.2011 в 10:59.
PRsam вне форума Ответить с цитированием
Старый 09.02.2011, 11:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
function StrOemToAnsi(const S: AnsiString): AnsiString;
begin
  SetLength(Result, Length(S));
  OemToAnsiBuff(@S[1], @Result[1], Length(S));
end;
ну и в Uses добавить Windows - если его нет в списке подключённых модулей...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.02.2011, 11:57   #3
PRsam
Новичок
Джуниор
 
Регистрация: 08.02.2011
Сообщений: 3
По умолчанию

большое спасибо
PRsam вне форума Ответить с цитированием
Старый 09.02.2011, 13:46   #4
PRsam
Новичок
Джуниор
 
Регистрация: 08.02.2011
Сообщений: 3
По умолчанию неполучается что то не так делаю.

Код:
BEGIN 
       AssignFile(f,'V:\sor01.txt');
       Reset(F);
          begin
                  for i := 1 to 10 do ReadLn(F); 
                  ReadLn(F, S);
                  StrOemToAnsi(S);
                  ListBox1.Items.Add(Copy(S, 5, 14));
          end;
              CloseFile(F);
              END;

function TASOPD.StrOemToAnsi(const S: AnsiString): AnsiString;
begin
  SetLength(Result, Length(S));
  OemToAnsiBuff(@S[1], @Result[1], Length(S));
end;
Комплируется но результата нет.
PRsam вне форума Ответить с цитированием
Старый 09.02.2011, 13:54   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну что Вы!
StrOemToAnsi - это ж функция.
Она возвращает результат!

Код:
          begin
                  for i := 1 to 10 do ReadLn(F); 
                  ReadLn(F, S);
                  S := StrOemToAnsi(S);
                  ListBox1.Items.Add(Copy(S, 5, 14));
          end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не понимаю логику DOS. (резидент под win-16) Les_55 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 12.09.2019 11:25
Перечисляемый тип перевести в строку? XPAiN Общие вопросы Delphi 3 23.01.2010 13:15
перевести из ASCII в HEX fize Помощь студентам 7 25.12.2009 15:35
Из Dos под Win Nozema Фриланс 3 30.10.2009 17:34
перевести число в строку Van777 Паскаль, Turbo Pascal, PascalABC.NET 5 15.05.2009 17:43