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


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

Seek #fileNumber, position

где:

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

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

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

Но чтото я туплю кажется.
...
Рейтинг: 0 / 0
07.12.2005, 17:43:19
    #33423218
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
Open "w:\1.txt" For Input As #f
Seek #f, 5 'Перемещаемся на нужную позицию
Input #f, St
MsgBox St
Close #f
...
Рейтинг: 0 / 0
07.12.2005, 17:54:39
    #33423240
Barsss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
Выдает ошибку: Плохое имя файла или номер Ошибка 52
Файл точно существует и в нем есть записи. Путь к файлу правильный.
В чем может быть проблема?
...
Рейтинг: 0 / 0
08.12.2005, 08:07:10
    #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
08.12.2005, 09:38:58
    #33424090
Андрей Il
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
To Barsss :
f=FreeFile()
Работает без проблем
...
Рейтинг: 0 / 0
08.12.2005, 10:00:07
    #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
12.12.2005, 10:15:56
    #33429882
Barsss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
Спасибо всем большое, разобрался, оказывается я действительно тормозил, переработался наверное.
...
Рейтинг: 0 / 0
06.01.2006, 10:29:11
    #33469933
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
Все понятно, если позиция определена заранее, а как быть, если строка
плавающая, а бывает их и не одна! Например:

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

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

После определенной строки я знаю, а вот вместо строки...увы нет!
...
Рейтинг: 0 / 0
06.01.2006, 10:44:52
    #33469953
shady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
напомните пожалуйста что это за оператор такой
...
Рейтинг: 0 / 0
06.01.2006, 11:13:19
    #33469987
vallot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
Если имеется ввиду SCR и TRU , то это операторы NC для пробивочной машины(отрезать остатки листа металла, подача воздуха),
мне как раз надо дать команду подавать воздух.
Сейчас каждый файл открывается вручную и записывается вручную,
а потом компилируется..брр..р!!!
...
Рейтинг: 0 / 0
06.01.2006, 14:41:56
    #33470397
shady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чтение ( запись) в файл
нет, я имел в виду
авторПосле определенной строки я знаю, а вот вместо строки...увы нет!
...
Рейтинг: 0 / 0
06.01.2006, 19:35:41
    #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
07.01.2006, 11:31:21
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Чтение ( запись) в файл / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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