powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Редактирование текста в файла
17 сообщений из 17, страница 1 из 1
Редактирование текста в файла
    #33926673
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я загружаю текстовый файл в RichEdit. Текст имеет 2 кодировки, ДОС и ВИН; несколько строк в одной кодировке, а остальные в другой. Я из ВИН перекодирую в ДОС, но весь текст.
TStringList *dd = new TStringList();
char buf[1024];
dd->LoadFromFile("C:\\1.txt");
for(int i=0; i<dd->Count; i++)
{
OemToChar(dd->Strings .c_str(),buf);
RichEdit1->Font->Name="Courier New";
RichEdit1->Lines->Add(buf);
}
Не знаю как сделать для некоторой части текста перекодировку. Подскажите, плз, как сделасть весь текст кодировкой ДОС????
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33926680
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если перекодировать немного, то легче всего заставить пользователя выделить часть текста в неправильное кодировке и перекодировать только выделенный текст (RichEdit->SelText)
Если же неправильного текста много, то тогда логично попробовать алгоритмы распознавания кодировки
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33926720
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, текста не много, буквально 2 строки. Можно код в студию, плз. Как оно хоть будет выглядеть!!??
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33926767
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seeerg_23Можно код в студию, плз
И ключ от квартиры, где деньги лежат ? :)
Код слишком тривиален, чтобы его приводить.
Используй свойства SelText, SelStart, SelLength
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33926828
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо и на этом, а то даже и не знал с чего начать!!
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33926833
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seeerg_23а то даже и не знал с чего начать!!
Дерзай.

Нашедший готовое останется на том же месте и умрет с голоду. Ищущий же будет идти дальше.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33927729
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вначале у меня происходит преобразование всего текста в кодировку ДОС. Но некоторые слова в кодировке ВИН. Я отыскиваю слово, выделяю его! Как его тоже преобразовать в кодировку ДОС????

void __fastcall TForm1::Button1Click(TObject *Sender)
{
FindDialog1->Position=Point(RichEdit1->Left+RichEdit1->Width,RichEdit1->Top);
FindDialog1->FindText="T.+. =хьхўъшэра";
//FindDialog1->FindText="T.=. ¦рэvў" ;
FindDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
Beep();
int FoundAt, StartPos, ToEnd;
if (RichEdit1->SelLength)
StartPos=RichEdit1->SelStart+RichEdit1->SelLength;
else
StartPos = 0;
ToEnd=RichEdit1->Text.Length()-StartPos;
FoundAt=RichEdit1->FindText(FindDialog1->FindText,StartPos,ToEnd,TSearchTypes()<<stMatchCase);
if (FoundAt!=-1)
{
RichEdit1->SetFocus();
RichEdit1->SelStart=FoundAt;
RichEdit1->SelLength=FindDialog1->FindText.Length();
}
// Меняю кодировку
RichEdit1->SelText=RichEdit1->Font->Charset<<OEM_CHARSET;

Вместо букв вообще цифры появляются, (пару раз получились каракули). Подскажите, плз, какую функцию использовать и как её приделать к последней строке!!???
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928121
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seeerg_23
s> RichEdit1->SelText=RichEdit1->Font->Charset<<OEM_CHARSET;

Вот эта строка не имеет смысла.
Надо взять текст из селтекст и преобразовать его с помощью CharToOem и вернуть обратно в селтекст
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928729
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
киньте кусочек кода , плз!!! Не совсем пойму как обратно вернуть текст. Без последней строки слово находится и выделяется! Осталось только перекодировать. Подскажите как!!! RichEdit1->SelText ??????
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928753
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моём коде поиск слова осуществляется с помощью компонента FindDialog1. Как осуществить поиск слова без этого компонента, т.е. чтобы форма открылась, весь текст перекодировался!!???
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928795
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seeerg_23Не совсем пойму как обратно вернуть текст
RichEdit1->SelText = "новеший перекодированнейший текст";
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928842
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу так:
char bbuuff[20];
RichEdit1->SelText=OemToChar("T.+. =хьхўъшэра",bbuuff);
Вместо букв появляются цифры(единицы)!!???
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928899
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
char bbuuff[ 20 ];
OemToChar("T.+. =хьхўъшэра",bbuuff);
RichEdit1->SelText=bbuuff;
так?
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928947
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в принципе так, но теперь не отображаются инициалы. Здесь зашифровано ФИО А.А. Немечкина, а перекодирует не полностью, а имеено в результате T.+. =емечкина ????
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33928985
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, неправильно скопировал текст? Почему у тебя первая А выглядит как Т, а вторая как плюс?
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33929065
seeerg_23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде правильно скопировал, из текстового файла!
1.Как осуществить поиск слов в тексте без компонента FindDialog?
2. У меня надо перекодировать 2 слова, а выделяет только одно. Писал так, может не правильно:
(FindDialog1->FindText="T.+. =хьхўъшэра") &&
(FindDialog1->FindText="T.=. ¦рэvў");
и в конце
(CharToOem("T.+. =хьхўъшэра",bbuuff)) &&(CharToOem("T.=. ¦рэvў",bbuuff));
...
Рейтинг: 0 / 0
Редактирование текста в файла
    #33930654
Тынц.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А воз и ныне там... Эх, молодёжь, молодёжь... почитай вот:
http://sources.ru/builder/gui/printing_from_tstringgrid.shtml
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Редактирование текста в файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]