29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
||||||
1 | ||||||
Символ новой строки16.08.2013, 18:16. Показов 5995. Ответов 95
Метки нет (Все метки)
Всем привет) С маппировал текстовый файл в память.
пример: cyber forum То в указатели pvFileSrc будет сплошной текст (cyberforum). Пробовал strstr(pvFleSrc, "\n"), strcmp(pvFleSrc, "\n"), ничего не выходит(( Пожалуйста, подскажите как определить строку.
0
|
16.08.2013, 18:16 | |
Ответы с готовыми решениями:
95
Символ новой строки в MFC Std::cin, символ новой строки Зачем здесь символ новой строки? Ошибка: символ новой строки в потоке |
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 19:43 [ТС] | 22 |
0
|
16.08.2013, 19:47 | 23 |
Если файл может состоять не только из текстовых строк, тогда смысл темы теряется. Если конечно ты не подразумеваешь двоичные данные с переводом строки, хоть это и не логично...
0
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 19:50 [ТС] | 25 |
0
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 19:58 [ТС] | 28 |
Вот как я хочу. находится 1 строка. есть два указателя на начало и конец строки. все это дело ищется через strstr.
1 строку буфферизируем. смещаем данные strcpy. находим 2 строку. ЕЕ тоже буфф. смещаем. и вставляем строки на место Добавлено через 1 минуту выбираются рандомно по номеру.
0
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 20:02 [ТС] | 30 |
в pvFileSrc. вот именно, изза разной длины строк я не могу использовать fseek, seekg и прочими фун-циями
0
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 20:06 [ТС] | 32 |
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
16.08.2013, 20:38 | 33 | |||||
В старом можно переписывать, если строки будут строго одинаковой длины. Такая гарантия есть?
Примерно так можно сделать:
1
|
16.08.2013, 20:49 | 35 |
Я тут подумал и сделал вывод:
Самая главная проблема в том, что если строки разных размеров то придется читать данные от начала первой строки до конца второй. Выделять то что находится между строками, сохранять это, менять строки местами, записывать первую строку, потом записывать то что находилось между ними, потом вторую. Размер данных при этом не меняется. Здесь очень поможет MapViewOfFile, по-другому через MapViewOfFile только извращения.
1
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 20:54 [ТС] | 36 |
гарантий нет. Большая вероятность того, что строки разных размеров.
Так с MapViewOfFile лучше делать?
0
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 20:57 [ТС] | 38 |
я эксперементировал, смотрел как будет добавление в строку происходить. если ставил r+ то затирал символы. если а+ то в конец только добавлял
Добавлено через 1 минуту да понятен более -менее.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
16.08.2013, 21:54 | 39 | |||||
Это о чём? Кто что затирает?
Вот так быстрее будет:
1
|
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
|
|
16.08.2013, 22:03 [ТС] | 40 |
strcat не туда вставляет.
походу в pvFileSrc надо будет посимвольно записовать?
0
|
16.08.2013, 22:03 | |
16.08.2013, 22:03 | |
Помогаю со студенческими работами здесь
40
Отбрасывает ли std::cin символ новой строки? Как убрать символ новой строки, применяя перегруженный оператор <<? Будет ли добавлен символ новой строки при ошибочном вводе? Ввести символьную строку. Распечатать каждый символ массива с новой строки Функция getline считывает несколько строк из файла, игнорируя символ новой строки Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |