Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Вставлять строки в середине файла Добавлено: 09.10.02 21:55  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 

Как это можно сделать. Если можно пример. Ну например у меня есть.

а=1

с=3

Как между ними вставить b=2 не переписывая файл ?

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Satrapp



ICQ: 75556561 

Вопросов: 8
Ответов: 80
 Профиль | | #1 Добавлено: 09.10.02 23:02

Dim sStr As String

open "C:\MyFile.txt" for Random As #nFile Len = Len(sStr)

Put #nFile, Номер_записи, sStr

не забудь только потом закрыть файл...

Ответить

Номер ответа: 2
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 10.10.02 19:43

Видишь ли дело в том что файл должен быть открыть или как OutPut или через FileSystemObject.

Т.е. разницы никакой, но мне нужно считывать построчно. А через Random прийдётся считывать по-байтово. Слишком медленно получается. В принципе такой способ подойдёт, если ты подскажешь, как в таком режиме считывать строки.

Ответить

Номер ответа: 3
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #3 Добавлено: 10.10.02 21:47
В таком режиме GEТ вместо пут, будет читать. А побайтово не так уж и медленно. Я например никогда не замечал уменьшения скорости... Не на четверке же ты работаешь? Или файл огромный?

Ответить

Номер ответа: 4
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #4 Добавлено: 10.10.02 21:48
В таком режиме GEТ вместо пут, будет читать. А побайтово не так уж и медленно. Я например никогда не замечал уменьшения скорости... Не на четверке же ты работаешь? Или файл огромный?

Ответить

Номер ответа: 5
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #5
Добавлено: 10.10.02 22:03

Ну представь как будет выглядеть код

strVar=String(" ",LOF(1))

Get #1,1,strVar

For z=1 to LOF(1)

if mid(strVar,z,1)=chr(13) then - эт нашли только конец 1 строки. Ещё надо найти её начало и извлечь из середины. Я проверял - долго. Это способ, когда считываешь весь файл в одну строку. Можно ещё один байт в одну строку. Но не вижу никакой разницы.

Может я использую неверный код ? Подскажи другой.

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 10.10.02 22:10

Насчёт четвёрки - опять почти угадал.

Если интерестно

iP166MMX(208МГц),128PC100, Quantum 10Гб+Quantum 13Гб, RV2200 PCI 8Мб(видуха)

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 11.10.02 22:42

Ну что никаких идей ?

Ответить

Номер ответа: 8
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #8 Добавлено: 12.10.02 11:39

Кароче:

dim mas() as string,mc as long

 open "Filename" for input as #1

   do while not Eof(1)

      ReDim Preserve mas(mc) as string

   line input #1,mas(mc)

    mc = mc + 1

   loop

close #1

   open "FileName" For OutPut as #2

     for i = 0 to mc

       if  ucase(mas(i)) = "A=1" then print #2, "b=2"

        print #2,mas(i)

    next i

close #2

Ответить

Номер ответа: 9
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #9
Добавлено: 12.10.02 22:53

От блин. У меня обработчик как из детского сада.

Откопал в архиве форума

2. Что получить кол-во строк любого текста:
Dim arrStrings() As String
arrStrings=split(текст_например_Text1.Text,vbcrlf)
Msgbox ubound(arrStrings
3. Получить строку:
Msgbxo arrStrings(номер_строки)

 

JEDI, чёт не могу понять что делает твой код. Вот блин. Это ж надо было проснуться за 20 минут до конца интернета. Ладно потом разберусь

Ответить

Номер ответа: 10
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #10 Добавлено: 13.10.02 12:16
Он сначала читает весь текст в масив, потом посли нужной строки пишет его обратно вфаил потом вставляет строку и дописывает фаил

Ответить

Номер ответа: 11
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #11 Добавлено: 13.10.02 12:19
Кароче он сначала читает фаил, потом пишет обратно в фаил до нужного места, потом вставляет строку и дальше дописывает фаил

Ответить

Номер ответа: 12
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #12
Добавлено: 13.10.02 19:27

JEDI.

Ты невнимательно прочитал вопрос.

Как между ними вставить b=2 не переписывая файл ?

А может быть я неверно выразился.

Я имел ввиду не закрывая файл.

Ответить

Номер ответа: 13
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #13 Добавлено: 14.10.02 14:24
НЕ пиреписывая фаил ты в него не когда строчку не вставишь! Ты всё равно должен переписать фаил!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам