![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Я тут уже советовался по чтению файла и всё в этом роде, но что-то всё равно идёт не так, нужна Ваша помошь...
есть текстовый файл, он хранится в архиве (zip) чтение фала происходит в буффер типа voidp, это наследованный тип от void *. Привыкший к чтению файла через STL я решил написать подобный класс, в котором производятся действия на подобии srd::fstream ..., но его работа оказалась не удовлетворительной... хе... вопрос такой у меня, как можно рассортировать этот буфер и последовательно получать "слова" - тут под этим термином понимаю символы разделённые табуляцией, пробелом или переводо на новую строку... -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Чтение идет из архива? |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Anikmar, да, там есть функция котороя возвращает в буфер всё содержимое, и вобщем-то я могу читать его содержимое, но вот с сортировкой пробелмы
-------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Если нужна сортировка по строкам - то проще всего на мой взгляд создать массив указателей на строки, загнать туда строки из буфера - и отсортировать.
|
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Anikmar, так вот мне нужно конкретное решение, пусть даж на словах (создай класс и примерно так отсортировывай)
кстати, мне не строки нужно отбирать, а слова! разделённые пробелом или табуляцией, или переводом строки... -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Хм... А что конкретнее чем я предложил? Ну не строки, а слова - какая разница?
Что нужно? Функцию, которая выделяет из строки слово? Для того, чтобы примерчик катать было бы неплохо узнать в какой среде. Я работаю в Билдере, а вы в чем? |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Я в Visual, но думаю перевод с билдера на вижуал не займёт большого труда... всяко лучше чем изобретать велосипед пытаясь написать аналог для std::fstream...
-------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Например такой код (набросал по-быстрому - так что оптимизируйте сами)
|
|||
|
||||
| ZC1989 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Anikmar, пасиб, чем-то смахивает на мой код, но я написал больше, а работает криво...
попробую разобраться, вопрос только, что из себя представляет
и функция
это сласс наследованный от char* и это просто функция добавления ? (не доводилось ещё с этим классом сталкиваться -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Anikmar, но это же VCL...
Зачем, если есть std::vector и std::string ? |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
JackYF, ты прав, создать вектор и писать в него отобранные слова! идея хорошая! пасибо, как сам до этого не додумался, ведь люблю с STL работать...
-------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Что просили, то и написал. Почему не использовал STL 1. Основное. Не сильный знаток (кое-что знаю, но не профи) 2. Я предпочел использовать буфер, дабы не тормозить процесс И ваще - это всего лишь набросок похмельного человека, который в понедельник ну ни как не может заставить себя заниматься своей основной работой. По поводу вопроса: AnsiString Text Это тип типа std:string - просто строка. Из методов используется доступ к элементу и длина (очевидно) ResultWords->Add(AnsiString(Buff)); RsultWords - это массив строк. данной командой просто добавляю строку. |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Anikmar, ясно, вобщем достаточно это заменить на полюбившийся СТЛ и всё становится доступно
всем пасибо, думаю разобрался с вопросом, тему можно закрывать... остальное знаю -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Блин, начал писать код и получил такую ошибку, что при резборе строки по слову у меня всё нормально, а вот при попытку получить эти же слова из массива глючит… в функцию
create(char *Buffer) я передаю строку “one two”
-------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
ZC1989, а где остальной код?
Это сообщение отредактировал(а) Rockie - 23.12.2006, 20:26 -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |