Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / чтение и одновременная запись в текстовый файл. / 25 сообщений из 44, страница 1 из 2
03.07.2019, 10:57
    #39833131
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Как решить проблему одновременного чтения строк из текстового файла и пометкой данных строк в текстовом файле, как прочитанные?
Что бы не читать , случайно, второй раз.
Или это не проблема?
------------------------------------------------------------------------
Спасибо за ответ.
...
Рейтинг: 0 / 0
03.07.2019, 11:06
    #39833134
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
регулярно читаю так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Set fso = CreateObject("Scripting.FileSystemObject")
 Set txt = fso.OpenTextFile("*******\99.txt", 1)
 Do While Not txt.AtEndOfStream
*
 nomp = Trim(txt.ReadLine)
*
Loop


Пока не понадобилось проверять....
...
Рейтинг: 0 / 0
03.07.2019, 11:26
    #39833149
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58Что бы не читать , случайно, второй раз.При открытии файла как текстового потока для чтения указатель помещается в начало и при каждом чтении перемещается на начало непрочитанного хвоста. Сам он не смещается. Так что второй раз одно и то же не прочитаешь при всём желании - у него даже нет метода для перемещения указателя в направлении начала,- только если переоткрывать...
...
Рейтинг: 0 / 0
03.07.2019, 11:49
    #39833170
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Akina,

Я имею ввиду в следующую загрузку.
То есть - после обеда загружальщика.
...
Рейтинг: 0 / 0
03.07.2019, 11:52
    #39833175
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Serg197311,

создали ФСО
Открыли файл
Читаем до конца...
а дальше - поясните - что происходит.
...
Рейтинг: 0 / 0
03.07.2019, 12:02
    #39833180
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58а дальше - поясните - что происходит.Закрываем поток
Код: vbnet
1.
txt.Close
...
Рейтинг: 0 / 0
03.07.2019, 12:04
    #39833182
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
...
Рейтинг: 0 / 0
03.07.2019, 12:09
    #39833188
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
...
Рейтинг: 0 / 0
03.07.2019, 12:17
    #39833195
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58Я имею ввиду в следующую загрузку.Пфф... тогда сохраняйте где-то количество уже прочитанных строк, и при следующем открытии SkipLines.
...
Рейтинг: 0 / 0
03.07.2019, 12:43
    #39833213
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Akina,
Понятно, что можно где-то сохранить.
А в самом файле отметить, в строке - это не вариант?
...
Рейтинг: 0 / 0
03.07.2019, 12:51
    #39833216
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58А в самом файле отметить, в строке - это не вариант?То есть изменение файла - процедура допустимая? да не вопрос - вот только как минимум придётся его открывать не как текстовый поток, а для произвольного доступа. При этом однозначно потеряв возможность встроенного парсинга на строки.
...
Рейтинг: 0 / 0
03.07.2019, 13:03
    #39833230
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Akina,

мда ....
ятахател - прочёл строку и тут же отметку в конце строки написать(==прочитано==).
значит фигвам....
...
Рейтинг: 0 / 0
03.07.2019, 13:35
    #39833259
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
нужно открывать файл с рандом-доступом и в вашем случае методами api или писать компоненты-обёртки, чтобы их использовать внутри акцеса
...
Рейтинг: 0 / 0
03.07.2019, 13:53
    #39833273
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Konst_One,
Спасибо.
Понятно.
То есть в моём случае - это безнадёжно.
Ну ладно. Буду искать выход.
...
Рейтинг: 0 / 0
03.07.2019, 14:01
    #39833284
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
...
Рейтинг: 0 / 0
03.07.2019, 14:12
    #39833291
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58, может ты обрисуешь чего хочешь получить, а не как ты думаешь это получить

Так-то файл можно считать в память целиком даже средствами VBA без привлечения других сущностей. Далее его можно разбить на отдельные строки, работать с ними в любой последовательности, дописывать, удалять, добавлять. В конце переписать файл.
...
Рейтинг: 0 / 0
03.07.2019, 14:12
    #39833292
чтение и одновременная запись в текстовый файл.
час58, допустим "пометка", это спецсимвол в начале строки, например "#". А перевод строки в фыйле стандартный, т.е. vbCrLf. Тогда предлагаю вариант:
1. Читаете сразу все содержимое файла в переменную. Это можно сделать и средствами VBA, и FSO, и ADODB.Stream. После чтения закрываете файл.
2. Преобразуете текст в массив строк функцией Split v = Split(s, vbCrLf)
3. В цикле по массиву проверяете наличие "#". Если отсутствует - обрабатываете, затем дописываете "#" в начало строки. Пустые строки (могут быть в конце массива) игнорируете.
4. По завершении (или после обработки каждой строки) функцией Join преобразуете массив в текст s = Join(v, vbCrLf) и сохраняете в том же файле (замена содержимого).
...
Рейтинг: 0 / 0
03.07.2019, 14:23
    #39833301
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58Или это не проблема?

Не проблема, первое решение которое пришло на ум:
Читая файл, сразу открывай второй на запись и пиши в него построчно первый плюс в конце строки своё (==прочитано==), клади файл рядом с тем же именем + _прочитано.txt

Ну а дальше варианты:
- оставлять оба файла
- убить читаемый, переименовать записанный в имя убитого прочитанного...
...
Рейтинг: 0 / 0
03.07.2019, 14:30
    #39833305
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Панургчас58, может ты обрисуешь чего хочешь получить, а не как ты думаешь это получить

Так-то файл можно считать в память целиком даже средствами VBA без привлечения других сущностей. Далее его можно разбить на отдельные строки, работать с ними в любой последовательности, дописывать, удалять, добавлять. В конце переписать файл.
Панург истину глаголит озвуч проблему.
...
Рейтинг: 0 / 0
03.07.2019, 14:33
    #39833311
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
час58прочёл строку и тут же отметку в конце строки написать(==прочитано==).Это означает, что тебе придётся перезаписать половину файла - всё от места вставки (включая вставку) и до конца. Диск не резиновый, он жёсткий, и на нём файл не "раздвигается", чтобы принять в середину горсть байтов. А вот перезаписать байт по определённому смещению, не вставляя и не удаляя байтов - это попроще...
...
Рейтинг: 0 / 0
03.07.2019, 14:45
    #39833324
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Панург,
ситуёвина такова.

Данные из текстового файла читаются построчно в таблицу.
При считывании строк файла - всякое может произойти...
И хотелось бы при последующем считывании данного файла, уже не заносить данные, которые уже ранее занесены в таблицу.
То есть пропускать строки, которые уже прошли обработку.
...
Рейтинг: 0 / 0
03.07.2019, 14:47
    #39833327
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
так это надо сравнение с табличными данными делать, а не файл импорта "портить"
...
Рейтинг: 0 / 0
03.07.2019, 14:48
    #39833328
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Konst_One,

Сегодня Туда меня уже посылали.
Спасибо.
...
Рейтинг: 0 / 0
03.07.2019, 14:51
    #39833331
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Konst_Oneтак это надо сравнение с табличными данными делать, а не файл импорта "портить"
Можно и так.
Но это, наверное дольше будет по времени.
...
Рейтинг: 0 / 0
03.07.2019, 14:52
    #39833333
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чтение и одновременная запись в текстовый файл.
Кривцов Анатолий,

Спасибо за вариант.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / чтение и одновременная запись в текстовый файл. / 25 сообщений из 44, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]