Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 5.00
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
#1

Символ новой строки - C++

16.08.2013, 18:16. Просмотров 3396. Ответов 95
Метки нет (Все метки)

Всем привет) С маппировал текстовый файл в память.
C++
1
2
3
4
5
6
7
HANDLE file = CreateFile(fileNameWChar, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    
DWORD fileSize = GetFileSize(file, NULL);
 
HANDLE fileMap =  CreateFileMapping(file, NULL, PAGE_READWRITE, 0, 0, NULL);
 
char *pvFileSrc = (char *)MapViewOfFile(fileMap, FILE_MAP_WRITE, 0, 0, fileSize);
если в файле строки находятся на разных строках
пример:
cyber
forum

То в указатели pvFileSrc будет сплошной текст (cyberforum).

Пробовал strstr(pvFleSrc, "\n"), strcmp(pvFleSrc, "\n"), ничего не выходит((

Пожалуйста, подскажите как определить строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2013, 18:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Символ новой строки (C++):

Символ новой строки в MFC - C++
При работе в MFC нужно вести протокол работы, то есть, сделали операцию a + b = c, записали в окно и т.д. Я создал Edit Control, с...

Std::cin, символ новой строки - C++
Подскажите, куда в данном примере после каждого cin'а девается символ новой строки? Насколько помню cin и cin.get его после себя оставляют...

Зачем здесь символ новой строки? - C++
Стивен Прата, Язык программирования С++, глава 7, пример 7 Никак не пойму, зачем здесь double temp; int i; for(i=0; i<limit;...

Отбрасывает ли std::cin символ новой строки? - C++
Здравствуйте. Есть следующий код (это задача из книги Праты): #include <iostream> const unsigned short strsize = 100; struct sBop ...

Будет ли добавлен символ новой строки при ошибочном вводе? - C++
После того, как пользователь введет число и нажмеn enter в поток будет передан символ новой строки '\n'. Будет ли добавлен символ новой...

Как убрать символ новой строки, применяя перегруженный оператор <<? - C++
Друзья! Ну то есть формируются строки хитрым способом (не вручную, лучше не углубляться в это) Потом получаю вектор этих строк. Надо...

95
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
16.08.2013, 22:54 #61
alsav22, это не может быть затратно. Честно говоря мне это делать лень, но ради вашего "большого спасиба" я готов. Если согласны тогда заключим пари

P.S.: на 100% я сам не уверен. Я уверен на 99%.

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Вопрос в количестве памяти, что не хватит, чтобы с таким файлом в памяти работать.
Функция MapViewOfFile для того и создана, чтобы не работать с большими объемами памяти.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.08.2013, 22:58 #62
Цитата Сообщение от castaway Посмотреть сообщение
Честно говоря мне это делать лень, но ради вашего "большого спасиба" я готов.
Вы ради ТС сделайте что-то. Я выкладываю рабочие коды, а от вас ТС, кроме размышлений на тему, ничего конкретного не увидел.

Добавлено через 3 минуты
Цитата Сообщение от castaway Посмотреть сообщение
Функция MapViewOfFile для того и создана, чтобы не работать с большими объемами памяти.
Этого я не знаю, с WinAPI не знаком, верю на слово. Делайте, флаг в руки...
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
16.08.2013, 23:09 #63
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы ради ТС сделайте что-то. Я выкладываю рабочие коды, а от вас ТС, кроме размышлений на тему, ничего конкретного не увидел.
Странно что не увидели, я приводил полезные для ТС примеры.
Символ новой строки
Символ новой строки
Только я вот одной вещи не пойму.., зачем я перед вами отчитываюсь. Вы придираетесь без повода. В чем причина такого поведения? Я вас чем-то обидел?

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Делайте, флаг в руки...
Слава богу флаг у меня давно в руках
0
alsav22
16.08.2013, 23:51
  #64

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
я вот одной вещи не пойму.., зачем я перед вами отчитываюсь
И я не пойму... Не отчитывайтесь...
Цитата Сообщение от castaway Посмотреть сообщение
Вы придираетесь без повода.
Где вы придирки увидели? Придираться пока не к чему...
Цитата Сообщение от castaway Посмотреть сообщение
я приводил полезные для ТС примеры.
Направление темы уже сменилось, примеры про другое...
Цитата Сообщение от castaway Посмотреть сообщение
Слава богу флаг у меня давно в руках
Флаг в руках - хорошо, ещё бы хоть какой-то рабочий код увидеть (имеется ввиду, как строки поменять)...

0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 00:24 #65
Цитата Сообщение от alsav22 Посмотреть сообщение
Где вы придирки увидели?
Например тут видел:
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы ради ТС сделайте что-то.
Я выкладываю рабочие коды, а от вас ТС, кроме размышлений на тему, ничего конкретного не увидел.
Думаю спорить не имеет смысла... Тут все понятно.
Были и коды, и 3 благодарности от ТС, один ты остался не доволен.
Цитата Сообщение от alsav22 Посмотреть сообщение
Направление темы уже сменилось, примеры про другое...
Про другие вопросы создают другие темы. Я приводил актуальные ответы на действующие вопросы.
Цитата Сообщение от alsav22 Посмотреть сообщение
Флаг в руках - хорошо, ещё бы хоть какой-то рабочий код увидеть (имеется ввиду, как строки поменяь)...
Хоть какой-то рабочий код вы уже могли увидеть если бы открывали глаза на все сообщения.
Позвольте я перейду с вами на "ты". Спасибо. Ты обижаешься - это очевидно, за что - для меня до сих пор остается загадкой с одной стороны,
с другой - все очевидно, тебе мало лет, ты обижаешься что к тебе обращено меньше внимания.. а! Я знаю. у тебя недостаток внимания в детском возрасте.
Очевидно же, просто так на людей не обижаются
Но есть и еще одна сторона - неадекватность. Я даже теряюсь в сомнениях.
Где я не ошибся?

Добавлено через 5 минут
vodilawofer, ТС, скажи пожалуйста, я тебе хоть в чем-то помог?
0
alsav22
17.08.2013, 00:25
  #66

Не по теме:

Продолжаете оправдываться?
Как много пустых слов... Код бы увидеть...

0
castaway
17.08.2013, 00:26
  #67

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Не по теме:
Продолжаете оправдываться?
Как много пустых слов... Код бы увидеть...
Золотые слова! Когда нечего сказать...

0
alsav22
17.08.2013, 00:28
  #68

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Золотые слова! Когда нечего сказать...
Ещё более золоьые, когда нечего показать...

0
vodilawofer
17.08.2013, 00:41  [ТС]
  #69

Не по теме:

напряжение "скакнуло", и код удалился

0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 00:44 #70
Цитата Сообщение от vodilawofer Посмотреть сообщение
напряжение "скакнуло", и код удалился
Неадекватность перескочила все возможные границы.. Какой удалился код ?
0
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
17.08.2013, 02:33  [ТС] #71
castaway, да, помогли. А еще больше "помогло" электричество, которое "скочет".

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
Неадекватность перескочила все возможные границы.. Какой удалился код ?
там где я все делал. все мои никчемные функции удалились(( хотя с другой стороны посмотреть все чисто ни какого мусора. Твори ни хочу)

Добавлено через 5 минут

Не по теме:

у меня чутьчуть неполучается( почему то со сдвигом не получается.



Добавлено через 1 час 38 минут
файл маппируется не правильно.

вот что находиться в pvFileSrc

Кликните здесь для просмотра всего текста
When a file mapping object that is backed by the paging file is created, the caller can specify whether MapViewOfFile should reserve and commit pages at the same time (SEC_COMMIT) or simply reserve pages (SEC_RESERVE).
Mapping the file makes the entire mapped virtual address range unavailable to other allocations in the process. After a page from the reserved range is committed, it cannot be freed or decommitted by calling VirtualFree. Reserved and committed pages are released when the view is unmapped and the file mapping object is closed.
For details, see the UnmapViewOfFile and CloseHandle functions.created, the caller can specify whether MapViewOfFile should reserve and commit pages at the same time (SEC_COMMIT) or simply reserve pages (SEC_RESERVE).


сам текст в файле
Кликните здесь для просмотра всего текста
When a file mapping object that is backed by the paging file is created, the caller can specify whether MapViewOfFile should reserve and commit pages at the same time (SEC_COMMIT) or simply reserve pages (SEC_RESERVE).
Mapping the file makes the entire mapped virtual address range unavailable to other allocations in the process. After a page from the reserved range is committed, it cannot be freed or decommitted by calling VirtualFree. Reserved and committed pages are released when the view is unmapped and the file mapping object is closed.
For details, see the UnmapViewOfFile and CloseHandle functions.


Может быть очистка должна быть какая та?
1
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 12:25 #72
Цитата Сообщение от vodilawofer Посмотреть сообщение
файл маппируется не правильно.
вот что находиться в pvFileSrc
А как ты проверяешь что там находится?
0
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
17.08.2013, 16:28  [ТС] #73
Если файл 2 гб. и нам надо поменять 1 и послед строку. то как быть? Куда запоминать строки которые находятся между ними?
0
castaway
Эксперт С++
4915 / 3023 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 16:35 #74
Цитата Сообщение от vodilawofer Посмотреть сообщение
Куда запоминать строки которые находятся между ними?
Выдели под них память: char *buffer = new char [size]; в чем проблема?
0
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
17.08.2013, 16:39  [ТС] #75
Цитата Сообщение от castaway Посмотреть сообщение
Выдели под них память: char *buffer = new char [size]; в чем проблема?
Проблема еще в том что считать размер он будет очень долго.
например у меня size считается вот так:
C++
1
2
3
4
5
while(firstStr != secondStr)
    {
        firstStr++;
        i++;
    }
т.е. подаются два указателя first и second и посимвольно считаются. больше 1.5 гига ему предстоит пробежать.
0
17.08.2013, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2013, 16:39
Привет! Вот еще темы с ответами:

Ввести символьную строку. Распечатать каждый символ массива с новой строки - C++
Ввести символьную строку. Распечатать каждый символ массива с новой строки.

Функция getline считывает несколько строк из файла, игнорируя символ новой строки - C++
Всем доброго дня! В С++ я новичок, сам себе придумываю задачки, просто для тренировки. Столкнулся с непонятным для меня поведением...

Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» - C++
День добрый. Имеется условие лабы. Написать программу, в которой с клавиатуры вводится до 10 символьных строк. Вывести строки, в...

Каждый символ строки заменить на следующий за ним, а последний символ строки заменяеть первым - C++
я написал код но не могу разобраться. вот дано : ---------------------------------------------------------- В текстовом файле fin.txt...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru