powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение ( запись) в файл
16 сообщений из 16, страница 1 из 1
Чтение ( запись) в файл
    #33421640
Barsss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите кто знает.
Есть текстовый файл нужно провести чтение из файла с определенной позиции.
И второе в тот же файл записать новый текст с определенной позиции с заменой старого текста.
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33421726
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это стандартные функции Басика и есть в любом учебнике...
' Открываем файл для последовательного чтения
Open "TESTFILE" For Input As #1
' Закрываем файл перед тем, как открыть его снова другим методом
Close #1


Переход на заданную позицию в файле можно организовать с помощью оператора seek, имеющего следующий синтаксис:

Seek #fileNumber, position

где:

fileNumber — номер файла, аналогичный номеру файла в операторе open;
position — целочисленное выражение, задающее позицию указателя в файле. Позиционирование при этом выполняется посимвольно.

и т.д.
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33423042
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barsss
помогло?
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33423167
Barsss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да чтото не могу разобратся,
Seek есть функция и есть оператор
если не трудно подскажи как произвести чтение, запись в файл.
Пробовал:

f = FreeFile
Open "i:\1.txt" For Input As f ' Открываем файл 1.txt для чтения
test = Input(Seek (f), 5)

Но чтото я туплю кажется.
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33423218
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Open "w:\1.txt" For Input As #f
Seek #f, 5 'Перемещаемся на нужную позицию
Input #f, St
MsgBox St
Close #f
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33423240
Barsss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдает ошибку: Плохое имя файла или номер Ошибка 52
Файл точно существует и в нем есть записи. Путь к файлу правильный.
В чем может быть проблема?
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33423930
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и что не работает? у меня все работает, специально проверил
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Form_Load()
Open App.Path & "\1.txt" For Input As # 1 
        
Seek # 1 ,  4 
Text1.Text = Input( 5 , # 1 )
Close # 1 
End Sub

считывает все до первого пробела...
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33424090
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Barsss :
f=FreeFile()
Работает без проблем
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33424148
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой класс для работы с текстом в свое время для себя наваял...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    Dim Text As New clsTextAsCollection
    'Открываем текст из файла
    Text.OpenText "C:\My.txt"
    'количество строк в тексте
    Debug.Print Text.Count
    'так можно обращаться к каждой строке текста
    Text.Stroka( 1 ) = "Моя строка"
    'заменяем строку в тексте
    Text.Replace  1 , "Моя новая строка"
    'удаляем строку из текста
    Text.Delete  1 
    'чистим текст
    Text.ClearText
    'Добавляем новую строку в текст
    Text.Add "Еще одна строка"
    'Сохраняем текст в файл
    Text.SaveText "C:\My.txt"
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33429882
Barsss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем большое, разобрался, оказывается я действительно тормозил, переработался наверное.
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33469933
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все понятно, если позиция определена заранее, а как быть, если строка
плавающая, а бывает их и не одна! Например:

Текст файла
--------------------------------------
-------------------------------
---------------------------------
---------------------------------------------------
----------------------------------
PIE: x y ert SCR
PIE: x y ert hjk SCR
PIE: x y ert nnnnnnn SCR
----------------------
--------------------------------------
-----------------------------------
конец текста файла

И мне надо после каждой SCR записать TRU

После определенной строки я знаю, а вот вместо строки...увы нет!
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33469953
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напомните пожалуйста что это за оператор такой
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33469987
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если имеется ввиду SCR и TRU , то это операторы NC для пробивочной машины(отрезать остатки листа металла, подача воздуха),
мне как раз надо дать команду подавать воздух.
Сейчас каждый файл открывается вручную и записывается вручную,
а потом компилируется..брр..р!!!
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33470397
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, я имел в виду
авторПосле определенной строки я знаю, а вот вместо строки...увы нет!
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33470785
vallot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, надо было написать яснее:

Я знаю как вставить свою строку после нужной мне строки!
Код: plaintext
1.
Mytext="PIE:*"  &  "*SCR"
If text(i) Like Mytext Then Print # 1 , text(i) & Space( 1 ) & "TRU"

Но мне надо только добавить слово TRU к нужной строке у которой всегда есть два ключевых слова PIE: и SCR
А вот позиция , нужной мне строки(строк), заранее неизвестна(т.е. в одном файле порядковый номер строки может быть 45 , а в другом файле -87, да и сама длина строк тоже разная), вот тут я и не знаю как добавить к нужной строке слово TRU .
Вообщем имеем такой текст:
Текст файла --------------------------------------
-------------------------------
---------------------------------
---------------------------------------------------
----------------------------------
PIE: x y ert SCR
PIE: x y ert hjk SCR
PIE: x y ert nnnnnnn SCR
----------------------
--------------------------------------
-----------------------------------
конец текста файла


А надо:


Текст файла --------------------------------------
-------------------------------
---------------------------------
---------------------------------------------------
----------------------------------
PIE: x y ert SCR TRU
PIE: x y ert hjk SCR TRU
PIE: x y ert nnnnnnn SCR TRU
----------------------
--------------------------------------
-----------------------------------
конец текста файла

Кто сталкивался с этим, подскажите!
...
Рейтинг: 0 / 0
Чтение ( запись) в файл
    #33471092
VALL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А решение на удивление простое!
Я думаю, что для таких ламеров, как я, может пригодиться!
Мне не жалко, пожалуйста!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 Dim fsn As New FileSystemObject
    Dim fol As Folder
    Dim fls As Files
    Dim fl As File
    Dim intPos As Integer
Dim ORD, MyLine
Dim Text() As String
Dim i As Integer
ReDim Text( 0 )
MyLine = "PIE:*" & "*SCR"
 ORD =  303 
'=================================
   Set fol = fsn.GetFolder("C:\VOVA\")
    Set fls = fol.Files                                     'для каждого нужного файла
        For Each fl In fls
    If fl.Name Like ORD & "*_pnt*.txt" Then
'=================================
Open fl For Input As  1 
Do While Not EOF( 1 )                              'открываем, читаем, закрываем
i = i +  1 
ReDim Preserve Text(i)
Line Input # 1 , Text(i)
Loop
Close # 1 
'================================
Open fl For Output As  1                               'открываем, записываем, закрываем
For i =  1  To UBound(Text)
If Text(i) Like MyLine Then Text(i) = Text(i) & Space( 1 ) & "TRU"   'добавить  слово
Print # 1 , Text(i)
 Next
Close # 1 
'================================
End If
Next
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение ( запись) в файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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