![]() |
|
![]() ![]() ![]() |
|
RaugaJ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
Тема вот в чем: имеется файл, который выводится в Мемо1, затем берем другой файл и ывводим его в Мемо2. Теперя нужно вычесть из первого второй и записать результат в Мемо3.
Мои действия: получил текст в char*-формате(массив char), теперь мне нужно весь текст разделить на массив строк(поскольку сравнение будет проходить построкам). Те приемы, которыми пользовался в Тurbo, в Builder не прокатывают. Подскажите код плиз, и если кто знает, может есть какие-либо стандартные ф-ции в Builder, выполняющие поиск в Мемо? |
|||
|
||||
Mysterio |
|
|||
![]() Планирующий ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.12.2004 Репутация: нет Всего: нет |
RaugaJ, если тебе нужно именно с использованием char тогда можно ловить строки, например, по символу Enter(13) + учитывать разбиения этих строк при изменении размеров компонента(т.е. визуально их будет больше). Гораздо проще и быстрее делается с использованием Memo1->Lines->Strings[x] типа AnsiString. Если исходный текст в char[], и не разделён, добавь .c_str(), что поможет преобразовать его к тому же AnsiStringу.
А как понять "вычесть из первого второй"? По числу символов или по повторениям, или ещё как? |
|||
|
||||
RaugaJ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
Вычесть, значит оставить те строки, которые есть в первом и которых нет во втором.
|
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: нет Всего: 20 |
Вот тебе пример, правда писал давно, извини за некрасивый код, щас времени нет заниматься рефакторингом и читабельностью
![]()
Это работающий код, везде стоит Float(sFloat, positionFloatRight и т.д), ибо я разбивал на вещественные, поэтому так и называл для себя, еще одна недоработка - выделение памяти под масиив finallyStringArray. Будет глупо перед этим вставить цикл, который будет искать кол-во слов в Memo(повторяющийся код). Лучше возьми std::vector, там динамическое выделение памяти, если не знаешь как, пиши, я тебе переделаю с std::vector, там быстро, но у меня щас ваще нет времени. Это сообщение отредактировал(а) W0LF - 18.6.2006, 18:44 -------------------- iOS developer |
|||
|
||||
W0LF |
|
||||||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: нет Всего: 20 |
Так, немного освободился, и подумал, что некрасиво все-таки недаработанное давать.
Так вот, самое простое использование std::vector без итераторов: в функции поменять параметр "String*& finallyStringArray" на "std::vector<String>& "finallyStringArr" поменять строку "finallyStringArray[finallyStringNumber] = String /*даже не знаю, че я здесь String влепил ![]() "finallyStringArray.push_back(sFloat);" Теперь объявление vector:
Использование vector:
Да, и еще, там немного неправильно слова резало: замени "String sFloat = sTmpLine.SubString(positionFloatLeft,positionFloatRight-positionFloatLeft+1);" на "String sFloat = sTmpLine.SubString(positionFloatLeft+1,positionFloatRight-positionFloatLeft);" Это все, если разделитель - пробел, если нужен другой символ, то просто добавь его, например:
Все, высказался(выписался как-то неудобно ![]() Это сообщение отредактировал(а) W0LF - 18.6.2006, 19:48 -------------------- iOS developer |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |