Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
1

Поменять кодировку в файле, созданном в dos приложении

28.08.2014, 10:28. Показов 2601. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нашел в нэте 2 функции для смены кодировки с 1251 в 866
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function Tmain_frm.StrAnsiToOem(const S: AnsiString): AnsiString;
begin
  SetLength(Result, Length(S));
  AnsiToOemBuff(@S[1], @Result[1], Length(S));
end;
 
function Tmain_frm.StrAnsiToOem2(const aStr: String): String;
var
  Len : Integer;
begin
  Result := '';
  Len := Length(aStr);
  if Len = 0 then Exit;
  SetLength(Result, Len);
  AnsiToOemBuff(PAnsiChar(aStr), PAnsiChar(Result), Len);
end;
ни одна не помогла, если руками при просмотре в блокноте устанавливаю кодировку в 866, то все норм отображает..но не сохраняется в 866. сам файл Вложение 429363
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2014, 10:28
Ответы с готовыми решениями:

как поменять кодировку с DOS на читабельную C#
В txt файле записан текст в DOS кодировке, как прочитать этот txt и записать в другой в файл в...

Как автоматически распознавать кодировку в файле: DOS или ANSI
Добрый день! Программа обрабатывает файлы. В основном, файлы кодировки DOS (CP866), но могут...

Как поменять кодировку в файле на ютф-8 если в редакторе уже стоит такая
Как поменять кодировку в файле на ютф-8 если в редакторе уже стоит такая уже -- и в индекс...

Проблемы возникают при преобразовании в DOS кодировку
Здравствуйте уважаемые Проблема вот в чём. Данные из Excel необходимо сохранить в текстовом файле...

21
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
28.08.2014, 10:32 2
Цитата Сообщение от sergey4iki Посмотреть сообщение
Поменять кодировку в файле, созданным в dos приложении
Цитата Сообщение от sergey4iki Посмотреть сообщение
нашел в нэте 2 функции для смены кодировки с 1251 в 866
Может надо наоборот с 866 в 1251?
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.08.2014, 10:33 3
sergey4iki, версия среды какая?
0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 10:34  [ТС] 4
northener, почему наоборот? файл же только нормально открывается в 866
и распознается кодировка в файле изначально 1251 да и сейчас попробовал в 1251 тоже самое
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
28.08.2014, 10:34 5
OemToAnsi()
0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 10:36  [ТС] 6
droider, делфи 2007
0
FIL
28.08.2014, 10:40
  #7
 Комментарий модератора 
sergey4iki, не дублируй темы!
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.08.2014, 10:42 8
sergey4iki, есть такое
Delphi
1
2
3
4
5
6
7
8
9
// функция смены кодировки (перевод в DOS)
Function WinToDos(const S: string):string;
var
  NewStr: string;
begin
  SetLength(NewStr, Length(S));
  CharToOem(PChar(S), PChar(NewStr));
  result :=NewStr;
end;

Не по теме:

FIL, согласен

0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 10:44  [ТС] 9
droider, тоже самое отображает, как и при использовании других функций
может прикрепленный файл глянете, легче будет?..
почему-то файл не доступен
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.08.2014, 10:47 10
Цитата Сообщение от sergey4iki Посмотреть сообщение
тоже самое отображает
в моем проекте эта функция нормально работала. Сейчас гляну файл.
0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 10:47  [ТС] 11
FIL, почему-то файл не доступен
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.08.2014, 10:48 12
sergey4iki, вложение недоступно. Выложите повторно.
0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 10:49  [ТС] 13
TTN1.TXTdroider,
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
28.08.2014, 10:55 14
Тип строки надо задавать AnsiString.

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
var
  s: AnsiString;
begin
  s := Memo1.Text;
  if OemToAnsi(PAnsiChar(s), PAnsiChar(s)) then
    Memo2.Text := s;
end;
Миниатюры
Поменять кодировку в файле, созданном в dos приложении  
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.08.2014, 11:01 15
Цитата Сообщение от droider Посмотреть сообщение
вложение недоступно. Выложите повторно.
А у меня и по первой ссылке нормально грузится файл...
0
FIL
28.08.2014, 11:03
  #16

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
А у меня и по первой ссылке нормально грузится файл...
Я все починил.:)

0
29 / 29 / 19
Регистрация: 18.11.2012
Сообщений: 338
Записей в блоге: 1
28.08.2014, 11:12  [ТС] 17
FIL, все время путаюсь с типами этими..в 2х словах можно пояснить

Добавлено через 4 минуты
еще такой вопрос: как взять инфу по полям -наименование, кол-во?
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
28.08.2014, 11:18 18
В юникодных версиях Дельфи String = UnicodeString, а не AnsiString, как в более ранних.
Поэтому и надо явно указать, что нам надо строка AnsiString типа.

Добавлено через 3 минуты
Цитата Сообщение от sergey4iki Посмотреть сообщение
как взять инфу по полям -наименование, кол-во?
Парсить текст надо.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
28.08.2014, 11:35 19
Цитата Сообщение от FIL Посмотреть сообщение
В юникодных версиях Дельфи
и
Цитата Сообщение от sergey4iki Посмотреть сообщение
делфи 2007
Не вяжется друг с другом. Юникодные - это 2009+
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
28.08.2014, 11:45 20
Цитата Сообщение от UI Посмотреть сообщение
это 2009+
верно
0
28.08.2014, 11:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2014, 11:45
Помогаю со студенческими работами здесь

Как переделать DOS-кодировку в Windows на Delphi?
При нажатии на кнопочку, которая лежит на форме нужно переделать текст в DOS-кодировке в такой,...

Составить процедуру преобразования текстового файла в кодировку DOS
Дан текстовый файл FileIn, записанный в кодировке Windows. Составить процедуру ANSI_ASCII(FileIn,...

Подскажите есть ли функция перекодирущая DOS кодировку в виндузовую?
Подскажите есть ли функция перекодирущая DOS кодировку в виндузовую?

Преобразование текстовых файлов из кодировки DOS в кодировку Windows и обратно
Программа преобразования текстовых файлов из кодировки DOS в кодировку Windows и обратно.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru