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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2013, 21:39   #1
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию Работа с UTF-8 кодировкой

Привет.
Ребят, совсем запарился с кодировками, нужно в Delphi 2010 сделать вот что:
Прочитать файл в строку(кодировка UTF-8), сделать замену подстроки и снова записать в файл. Проблема в том, что у меня на каком-то этапе меняется кодировка и я не знаю как это исправить.
Вот мой код:
Код:
b:utf8String;


  Memo.Lines.LoadFromFile('Templates\temp.xml');
  b := Memo.Text;
  b:=StringReplace(b, UTF8Encode('PL1'),UTF8Encode('ТЕСТ'),[]);
  Memo.Text:= b;
  Memo.Lines.SaveToFile('Templates\temp.xml');

Последний раз редактировалось Levsha100; 06.07.2013 в 21:55.
Levsha100 вне форума Ответить с цитированием
Старый 06.07.2013, 22:47   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А если попробовать stringlist вместо memo?
UPD
Превращается в ansi все равно.
UPD2
Аватар уже написал.
Код:
var
  s1, s2: tstringstream;
  s: string;
begin
  s1 := tstringstream.Create('', TEncoding.UTF8);
  s1.LoadFromFile('1.txt');
  s := StringReplace(s1.DataString, UTF8Encode('PL1'), UTF8Encode('ТЕСТ'), []);
  s2 := tstringstream.Create(s, TEncoding.UTF8);
  s2.SaveToFile('2.txt');
  s1.Free;
  s2.Free;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 06.07.2013 в 23:07.
BDA на форуме Ответить с цитированием
Старый 06.07.2013, 22:55   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

На сколько я понимаю мемо агрегирует стринглист, но сейчас попробую.
Попробовал, не работает.

Последний раз редактировалось Levsha100; 06.07.2013 в 22:58.
Levsha100 вне форума Ответить с цитированием
Старый 06.07.2013, 23:04   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Через TStringStream c TEncoding.UTF8
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.07.2013, 23:17   #5
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Спасибо, работает
Levsha100 вне форума Ответить с цитированием
Старый 18.07.2013, 13:44   #6
IvaniuS
Форумчанин
 
Аватар для IvaniuS
 
Регистрация: 16.04.2007
Сообщений: 225
По умолчанию

все хорошо, все работает и работало, НО у меня шифрованый файл и там есть половина символов "левых" а мне нужен только текст англ и рус + @ + > +< + "
мне нужно или все лишнее удалить или наоборот перенести только нужное, проблема в том что англ текст нормальный а русский в другой кодировке, ворд и нотепад++ нормально перекодируют, а если подсунуть весь текст делфе он оставит только 2 строчки куска зашифрованого файла.
Код:
  for I := 0 to crttext.Lines.Count - 1 do
    for j := 0 to length(crttext.Lines[i]) - 1 do
      crttext.Lines[i][j]:=utf8toansi(crttext.Lines[i][j]);
вот так вот пробовал, но безуспешно, там только строка должна быть символ не катит.
как-то побайто-во можно, но не знаю как.
во вложении как это выглядит в нотепад++
Вложения
Тип файла: txt 23560463.txt (1.3 Кб, 135 просмотров)

Последний раз редактировалось IvaniuS; 18.07.2013 в 18:22.
IvaniuS вне форума Ответить с цитированием
Старый 18.07.2013, 19:56   #7
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Странная зашифровка файла, который легко читается в utf-8: "Юг-Інтелект-Сервіс" для податкових накладних. Судя по всему - обычное хранение переменных и их свойств. Пытаетесь взломать и переписать?
ReportCube вне форума Ответить с цитированием
Старый 18.07.2013, 20:09   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от IvaniuS Посмотреть сообщение
НО у меня шифрованый файл и там есть половина символов "левых" а мне нужен только текст англ и рус + @ + > +< + "
мне нужно или все лишнее удалить или наоборот перенести только нужное
ЭЦП хотите подделать?
northener вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с кодировкой utf-8 cyclobe PHP 5 06.08.2012 02:33
Как правильно прочитать файл с кодировкой UTF-8 КАРТОВЕДЪ Общие вопросы Delphi 8 08.02.2012 12:31
Проблемы с кодировкой UTF-8 Prontit Общие вопросы Delphi 2 29.07.2011 18:30
Работа с ANSI и UTF-8 Farrel Visual C++ 2 22.09.2010 23:00
Помогите с записью строк в фаил с кодировкой UTF-8 Виталий Серов Общие вопросы Delphi 1 26.03.2009 03:22