|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Как решить проблему одновременного чтения строк из текстового файла и пометкой данных строк в текстовом файле, как прочитанные? Что бы не читать , случайно, второй раз. Или это не проблема? ------------------------------------------------------------------------ Спасибо за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 10:57 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
регулярно читаю так Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Пока не понадобилось проверять.... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:06 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Что бы не читать , случайно, второй раз.При открытии файла как текстового потока для чтения указатель помещается в начало и при каждом чтении перемещается на начало непрочитанного хвоста. Сам он не смещается. Так что второй раз одно и то же не прочитаешь при всём желании - у него даже нет метода для перемещения указателя в направлении начала,- только если переоткрывать... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:26 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Akina, Я имею ввиду в следующую загрузку. То есть - после обеда загружальщика. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:49 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Serg197311, создали ФСО Открыли файл Читаем до конца... а дальше - поясните - что происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 11:52 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58а дальше - поясните - что происходит.Закрываем поток Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:02 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, читай вот http://www.script-coding.com/WSH/FileSystemObject.html#7. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:04 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/textstream-object ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:09 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Я имею ввиду в следующую загрузку.Пфф... тогда сохраняйте где-то количество уже прочитанных строк, и при следующем открытии SkipLines. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:17 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Akina, Понятно, что можно где-то сохранить. А в самом файле отметить, в строке - это не вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:43 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58А в самом файле отметить, в строке - это не вариант?То есть изменение файла - процедура допустимая? да не вопрос - вот только как минимум придётся его открывать не как текстовый поток, а для произвольного доступа. При этом однозначно потеряв возможность встроенного парсинга на строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 12:51 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Akina, мда .... ятахател - прочёл строку и тут же отметку в конце строки написать(==прочитано==). значит фигвам.... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 13:03 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
нужно открывать файл с рандом-доступом и в вашем случае методами api или писать компоненты-обёртки, чтобы их использовать внутри акцеса ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 13:35 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Konst_One, Спасибо. Понятно. То есть в моём случае - это безнадёжно. Ну ладно. Буду искать выход. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 13:53 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/open-statement дерзайте ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:01 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, может ты обрисуешь чего хочешь получить, а не как ты думаешь это получить Так-то файл можно считать в память целиком даже средствами VBA без привлечения других сущностей. Далее его можно разбить на отдельные строки, работать с ними в любой последовательности, дописывать, удалять, добавлять. В конце переписать файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:12 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, допустим "пометка", это спецсимвол в начале строки, например "#". А перевод строки в фыйле стандартный, т.е. vbCrLf. Тогда предлагаю вариант: 1. Читаете сразу все содержимое файла в переменную. Это можно сделать и средствами VBA, и FSO, и ADODB.Stream. После чтения закрываете файл. 2. Преобразуете текст в массив строк функцией Split v = Split(s, vbCrLf) 3. В цикле по массиву проверяете наличие "#". Если отсутствует - обрабатываете, затем дописываете "#" в начало строки. Пустые строки (могут быть в конце массива) игнорируете. 4. По завершении (или после обработки каждой строки) функцией Join преобразуете массив в текст s = Join(v, vbCrLf) и сохраняете в том же файле (замена содержимого). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:12 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Или это не проблема? Не проблема, первое решение которое пришло на ум: Читая файл, сразу открывай второй на запись и пиши в него построчно первый плюс в конце строки своё (==прочитано==), клади файл рядом с тем же именем + _прочитано.txt Ну а дальше варианты: - оставлять оба файла - убить читаемый, переименовать записанный в имя убитого прочитанного... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:23 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Панургчас58, может ты обрисуешь чего хочешь получить, а не как ты думаешь это получить Так-то файл можно считать в память целиком даже средствами VBA без привлечения других сущностей. Далее его можно разбить на отдельные строки, работать с ними в любой последовательности, дописывать, удалять, добавлять. В конце переписать файл. Панург истину глаголит озвуч проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:30 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58прочёл строку и тут же отметку в конце строки написать(==прочитано==).Это означает, что тебе придётся перезаписать половину файла - всё от места вставки (включая вставку) и до конца. Диск не резиновый, он жёсткий, и на нём файл не "раздвигается", чтобы принять в середину горсть байтов. А вот перезаписать байт по определённому смещению, не вставляя и не удаляя байтов - это попроще... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:33 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Панург, ситуёвина такова. Данные из текстового файла читаются построчно в таблицу. При считывании строк файла - всякое может произойти... И хотелось бы при последующем считывании данного файла, уже не заносить данные, которые уже ранее занесены в таблицу. То есть пропускать строки, которые уже прошли обработку. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:45 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
так это надо сравнение с табличными данными делать, а не файл импорта "портить" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:47 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Konst_One, Сегодня Туда меня уже посылали. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:48 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Konst_Oneтак это надо сравнение с табличными данными делать, а не файл импорта "портить" Можно и так. Но это, наверное дольше будет по времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:51 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, Спасибо за вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:52 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Konst_One https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/open-statement дерзайте Спасибо. я там был. Не полегчало. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 14:57 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Панург, ситуёвина такова. Данные из текстового файла читаются построчно в таблицу. При считывании строк файла - всякое может произойти... И хотелось бы при последующем считывании данного файла, уже не заносить данные, которые уже ранее занесены в таблицу. То есть пропускать строки, которые уже прошли обработку.Тут могут быть разные варианты. Например, писать в таблицу в транзакции, при том всяком, что может произойти, данные просто не сохранятся. И это наиболее правильный путь. ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:02 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Панург, А вариант когда при чтении файла - попадается битая(кривая, не соответствующая правилам, фиговая) строка, и прогу выкидывает в обработчик ошибок. Прежние строки считаны в таблицу, а последующие ждут в смятении своей загрузки. Шо робить? Самое простое - загрузть файл ещё раз. Вот тут-то и нужно пропустить уже загруженное и с исправленной строкой проглотить остатки файлика. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:06 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Шо робить?Сообщить пользователю, пусть принимает решение, исправляет и по новой. Либо игнорировать и писать дальше, ошибки логировать. Я бы предпочёл первое. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:10 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
всё зависит от данных и их количества ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:12 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
может чё пропустил... запоминать номер последней удачно загруженной, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:17 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
я делал примерно по такой схеме в случае импорта построчно: 1) созданы специальнеые таблицы для импорта , как правило 2 (заголовок файла и содержимое) 2) при начале импорта записываются все данные в эти 2 промежуточные таблицы импорта 3) потом начинается построчный импорт из таблицы содержимого текущего импорта 4) если запись не сохраняется или неверный формат или другие проблемы, то данная строка помечается с ошибкой импорта (лог записывается или в файл и в специальную таблицу логов) 5) по окончании обработки всех строк импорта пользователю выдаётся результат - сколько строк импортировано, сколько ошибок и в каких строках или общая ошибкка импорта, если например файл не прочитался написал вкрадце, там ещё куча нюансов и наворотов, уже сами можете добавить/придумать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:18 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Konst_One, Да. Так оно конечно всё правильно сделано. Я искал лёгкие пути решения. непринуждённая пометочка в строке. А это - да. так можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:22 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, Смотри своство и методы TextStream.Line Панург ссылку дал тебе. Запоминай номер строки. Может это спасёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:23 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
ROI, да... Ссылками завалили. Буду разгребать. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:25 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Данные из текстового файла читаются построчно в таблицу. Что ж там за содержимое, что его нельзя импортировать с помощью драйвера? Покажите пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:40 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Панургвсё зависит от данных Возможно здесь есть ключ к решению, например некоторый уникальный идентификатор строки (хотя бы в пределах даты или файла), по которому можно реализовать вот это Konst_Oneтак это надо сравнение с табличными данными делать, ТС так и ни привел ни одной строки данных и ни слова описания... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:43 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, да, Извините заработался. Данные такие: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:50 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
Кривцов Анатолийчас58Данные из текстового файла читаются построчно в таблицу. Что ж там за содержимое, что его нельзя импортировать с помощью драйвера? Покажите пример. С помощью драйвера нельзя потому, что каждую строку пробивают чеком через фискальный регистратор ( через кассу.) Потому ошибки чреваты. Хотелось бы их исключить из работы "Кассира-оператора". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 15:52 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58С помощью драйвера нельзя потому, что каждую строку пробивают чеком через фискальный регистратор ( через кассу.) Потому ошибки чреваты. Хотелось бы их исключить из работы "Кассира-оператора".Ну так сперва импортировать всё, а потом проверить на корректность. И только корректные записи - печатать, явно некорректные - не печатать, остальные - запросить ручную корректировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 16:11 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Данные такие: Код: vbnet 1.
Может логичнее загрузить файл в Ёксель - подрихтовать при необходимости - сохранить как XLS - выполнить импорт в таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 16:17 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
можно полюбопытствовать, а о файле какого размера и на какое кол-во строк идет речь? 10, 100, 1000, 10000000.... строк? идет борьба за простоту кода, скорость обработки, надежность ? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 16:24 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58Данные такие: Код: vbnet 1.
ну и что здесь что ? 21.50 - понятно - цена а первые два значения что ? связка из трех значений уникальна ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 17:25 |
|
чтение и одновременная запись в текстовый файл.
|
|||
---|---|---|---|
#18+
час58, Вообще то можно сделать проще (для этого) час58каждую строку пробивают чеком через фискальный регистратор ( через кассу.) Потому ошибки чреваты. Хотелось бы их исключить из работы "Кассира-оператора". нужно просто во временной таблице вести протокол обработки файла: - в начале чистим таблицу (счетчик-ключ лучше сделать свой принудительный) - так как файл всегда читается одинаково (последовательно), то после обработки строки пишем в таблицу протокола номер строки в файле и результат. - соответственно на втором и последующем проходе по файлу в протоколе будет три исхода для каждой строки файла: - строка в протоколе есть, результат положительный - строка в протоколе есть, результат отрицательный - строки в протоколе нет - строка не обрабатывалась совсем, до фискальника дело не дошло ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2019, 17:46 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1610617]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 488ms |
0 / 0 |