|
|
|||||||||||||||||
После чтения StreamReader'ом, его методом ReadLine, вернуться к предыдущей строке12.12.2011, 22:41. Показов 7613. Ответов 11
Метки нет (Все метки)
Кто-нибудь в курсе, реально ли после прочтения строки, вернуться на прошлую позицию. Вот смотрите пример:
Пример
В переменной text 4 слова: "привет", "идти", "смотреть", "пилить" (разбито на 4 строки). После выполнения вышеприведённого кода в консоль выведутся 3 слова (ну я 3 раза читал из потока по строке). То есть, если я захочу дальше читать из StreamReader, то мне останется только прочитать последнюю строку, на 5-ый раз ReadLine вернёт null (оно и понятно, все 4 строки прочитаны). Вот возможно ли как-то прочитав 3 строки вернуться на одну строку назад? Вот есть код, я пробовал возврашать с помощью streamReaders[i].BaseStream.Position = previousPosition, но оказывается при чтении ...BaseStream.Position сдвигается не на одну строку, а на какое-то значение вперёд и таким образом вернуться назад не выходит Так пробовал вернуться на прошлую позицию
Добавлено через 3 часа 41 минуту Поставлю вопрос по другому. Можно ли как-то без плясок с бубном прочитать следующее слово в StreamReader так, чтобы потом ReadLine читал не перепрыгивая через слово. То есть порядок чтения методом ReadLine оставался прежним и не сдвигался? Попробовал сделать так, но при чтении в методе GetNextWord всё же происходит сдвиг. Короче этот код читает из текстового файла все одинаковые слова и если следующее слово не совпадает с предыдущим, то передаёт управление следующему StreamReader, тот тоже читает все одинаковые слова и добавляет их в общий список (тут нету куска кода, но не суть, оно и не нужно, по вопросу код присутствует).
Пример файла:
Суть вопроса, как прочесть в текущем StreamReader следующее слово (предполагается, что до этого несколько раз читали ранее методом ReadLine) так, чтобы не сдвинуть (м-м-м... как же это назвать) курсор/флаг/текущую позицию в StreamReader. Народ, если ничего не понятно, то вы хоть скажите, а то как-то странно, никто ничего не пишет. Добавлено через 54 минуты Похоже неверный подход к решению задачи я выбрал. Надо придумывать что-то другое.
0
|
|||||||||||||||||
| 12.12.2011, 22:41 | |
|
Ответы с готовыми решениями:
11
Как после автоматического запуска приложения, после его закрытия вернуться к приложению которое было открыто раньше? Не могу вернуться к предыдущей версии windows К сожалению вы не можете вернуться к предыдущей версии, необходимые файлы удалены |
|
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 41
|
|
| 20.01.2020, 08:04 | |
|
9 лет прошло и ни кто не ответил(
Помогите пожалуйста. Я тоже читаю строки .ReadLine(), как после того как строки кончатся перейти в начало файла без закрытия потока и начать снова считывание? dell
0
|
|
|
sleep
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,750
|
||
| 20.01.2020, 08:06 | ||
|
Гораздо проще и удобнее прочитать весь файл в массив и делать с ним что хочешь.
0
|
||
|
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 41
|
|
| 20.01.2020, 08:09 | |
|
Мне нужен, а если файл у меня 50гиг то что делать?
0
|
|
| 20.01.2020, 08:12 | |
|
0
|
|
|
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 41
|
||
| 20.01.2020, 08:17 | ||
|
Мне сказали что вот так .BaseStream.Position = 0 Но у меня проблема вот в чем
0
|
||
|
|
||||||
| 20.01.2020, 09:15 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 6
|
|
| 20.01.2020, 09:16 | |
|
Casper-SC, скорее всего, это танец с бубном, но можно ведь записывать каждую строку в коллекцию, а потом уже работать с ней.
0
|
|
| 20.01.2020, 09:25 | ||
|
Не по теме:
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 20.01.2020, 11:06 | |||
|
Хотя бы буфер очищайте после смены позиции. И учтите, что размер буфера по умолчанию — 1Кб. Если строки короткие, а взад-назад двигаться планируется часто, то может быть накладно.
1
|
|||
|
|
|||
| 21.01.2020, 01:40 [ТС] | |||
![]() Добавлено через 37 секунд Добавлено через 1 минуту Есть подозрение, что мне не ответили из-за пугающих тестовых данных. Никто связываться не захотел. Добавлено через 1 минуту Я сам сейчас испугался.
1
|
|||
|
Модератор
|
||
| 21.01.2020, 13:08 | ||
|
Можно, как показали kolorotur и Toros1992, сделать это изменив позицию и очистив буфер. Но, по-моему, ни каких преимуществ это по сравнению с новым открытием StreamReader не даст. Так что не понятно где это может понадобиться.
0
|
||
| 21.01.2020, 13:08 | |
|
Помогаю со студенческими работами здесь
12
Как правильно посчитать количество символов в строке после чтения файла антивордом? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|