Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
||||||
1 | ||||||
Считать из файла до определенного символа23.12.2011, 14:05. Показов 39894. Ответов 16
Метки нет (Все метки)
Как считать из файла строку до определенного символа, например до второй кавычки: "Stroka s 12"
Пробовал так, но как-то не так получается
0
|
23.12.2011, 14:05 | |
Ответы с готовыми решениями:
16
Считать из файла от определенного символа(слова) до определенного символа(слова) Как считать из файла части строк до определенного символа Как считать всё до определённого символа? Как считать все символы в файле после определенного символа |
Заблокирован
|
|
23.12.2011, 14:13 | 2 |
ITZver, нужно считать строку найти позицию первого вхождения " потом второго " разность позиций - длинна вашей цитаты, позиция первой кавычки начала цитаты. Лично я не заморачиваюсь считываю текст из файла целиком в буффер(так же работают все быстрые редакторы, кто бы вам что ни говорил), а потом char *first = strchr(str,'"'); - нахожу подстроку с первой кавычкой а затем
char * second = str(str + (fPos = (strlen(str) - strlen(first)) + 1,'"'); нахожу подстроку со второй кавычкой sPos = strlen(str) - strlen(second); Добавлено через 1 минуту В принципе поиск first second можно производить и в цикле похожем на ваш - только вот это врядли всегда будет работать, да и текст с пробелами не ввести таким образом
1
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
|
23.12.2011, 15:03 [ТС] | 3 |
А может считывать посимвольно и каждый раз проверять?
0
|
|
23.12.2011, 15:21
#5
|
Не по теме: go, маханький вопрос - как потом строку цитаты записать???:) Из буфера на раз, а вот тыцаньем в файл по символу мы только время исполнения увеличим + как миниму 2 прохода нужно делать будет, вы можете как хотите относиться ко мне но концептуально то что предлагаете полный ацтой особенно для файла скажем в 3-6 Мб, у пользователя терпения не хватит ждать пока по символу считаем + два прохода!:wall:
1
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|||||||||||
23.12.2011, 15:27 | 6 | ||||||||||
Вы вообще о чем? Ясно дело
1
|
Заблокирован
|
|
23.12.2011, 15:50 | 7 |
хорошо опишу ситацию
строка1 BUFZIZ - "-первы кавычки строка2 BUFZIZ строкаn " - вторые кавычки Как будет работать алгоритм если 2 кавычки не лежат в пределах BUFSIZ - а если весь текс одна сплошная цитата, а ладно вчухал ITZver, говн*код и думаешь молодец... Добавлено через 1 минуту ITZver, поставь кавычки вначале своего текста и конце и посмотри на код go... (скажем текст 3 Мб это что то около 3млн символов, а BUFSIZ 2048 - это даст возможность максимально быстрого чтения - итог КОД НЕ ОТРАБОТАЕТ как положено, потому как алогоритм поиска нулевой, и что ту палемику разводить)
0
|
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
|
||||||
23.12.2011, 15:53 [ТС] | 8 | |||||
Все, сделал сам.
Мне нужен код только для одной строки, порядка 30 символов. Поэтому сложности здесь ненужны.
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|||||||||||
23.12.2011, 15:59 | 9 | ||||||||||
0
|
Заблокирован
|
||||||
23.12.2011, 17:42 | 10 | |||||
ITZver, вот код которій способен обрабатывать текст любой длинны
1
|
Заблокирован
|
||||||
23.12.2011, 17:44 | 11 | |||||
ITZver, вот код которій способен обрабатывать текст любой длинны
fdsggjdfggdlf dflkg dkfgkd "jfgdjg fjgfdj nsdgfj" jfjg " jfd hdhsf" hsdfhds jgf
1
|
23.12.2011, 17:59 | 13 |
Если bRead == false, то утечка памяти. Если память для строки не была выделена, то будет попытка очистки невыделенной памяти.
Добавлено через 3 минуты Не говоря уже о том, что new должен бросать исключение, а не возвращать NULL, при ошибке.
1
|
23.12.2011, 19:00 | 15 | ||||||||||
go, грубо говоря, сущесвует две версии new (не считая placement и не различая single-object и array-object формы).
Вторая же возвращает null pointer при ошибке выделения памяти. Если так хочется проверить возвращаемое значение, то надо использовать именно ее. Вот примерчик. Я переопределил оператор new, чтобы имитировать ошибки выделения памяти.
Код
bar terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
1
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
23.12.2011, 19:10 | 16 | |||||
fasked,
-=ЮрА=-, для Вас http://www.cplusplus.com/refer... bad_alloc/
1
|
Заблокирован
|
||||||
23.12.2011, 21:45 | 17 | |||||
приведу примерчик где bad_alloc не отработает, вобщем я вернусь...!Пока нет времени тут воевать за истину
Добавлено через 42 минуты go, fasked, компилируем этот код(особенно в кодблоксе гонит) и пробуем ввести единичку и девять ноликов, потом десять и как бы понимаем что bad_alloc не так уж хорош
К тому же я из этого исходил . М.б для вас в асме написать для "простоты"??? Добавлено через 5 минут Не по теме: PS:Не надо меня держать за профана, указывая на детские азы. Я всегда пишу под уровень ТС. Как бы говорил уже очерчиваем проект - определяем сроки написания и потом выкладываем экзешники, мне бы хотелось на многих здесь посмотреть как они попробуют меня за пояс заткнуть - как бы обижать тут все горазды, т.к. держитесь дружной бражкой один за всех и все за одного, я же решаю всё сам и что то вроди прихвостней мне абсолютно НЕ НАДО!
0
|
23.12.2011, 21:45 | |
23.12.2011, 21:45 | |
Помогаю со студенческими работами здесь
17
Как считать 4 строки после определенного символа и записать их в виде переменных Удалить часть строки от определенного символа до определенного символа Чтение из файла определенного символа Чтение текстового файла до определённого символа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |