Страница: 1 |
Вопрос: Вставлять строки в середине файла | Добавлено: 09.10.02 21:55 |
Автор вопроса: ![]() ![]() |
Как это можно сделать. Если можно пример. Ну например у меня есть. а=1 с=3 Как между ними вставить b=2 не переписывая файл ? |
Ответы | Всего ответов: 13 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 10.10.02 19:43 |
Видишь ли дело в том что файл должен быть открыть или как OutPut или через FileSystemObject. Т.е. разницы никакой, но мне нужно считывать построчно. А через Random прийдётся считывать по-байтово. Слишком медленно получается. В принципе такой способ подойдёт, если ты подскажешь, как в таком режиме считывать строки. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #3 | Добавлено: 10.10.02 21:47 |
В таком режиме GEТ вместо пут, будет читать. А побайтово не так уж и медленно. Я например никогда не замечал уменьшения скорости... Не на четверке же ты работаешь? Или файл огромный? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 12 Ответов: 430 |
Профиль | Цитата | #4 | Добавлено: 10.10.02 21:48 |
В таком режиме GEТ вместо пут, будет читать. А побайтово не так уж и медленно. Я например никогда не замечал уменьшения скорости... Не на четверке же ты работаешь? Или файл огромный? |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 10.10.02 22:10 |
Насчёт четвёрки - опять почти угадал. Если интерестно iP166MMX(208МГц),128PC100, Quantum 10Гб+Quantum 13Гб, RV2200 PCI 8Мб(видуха) |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 11.10.02 22:42 |
Ну что никаких идей ? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 12.10.02 22:53 |
От блин. У меня обработчик как из детского сада. Откопал в архиве форума 2. Что получить кол-во строк любого текста:
JEDI, чёт не могу понять что делает твой код. Вот блин. Это ж надо было проснуться за 20 минут до конца интернета. Ладно потом разберусь |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8370005 Вопросов: 34 Ответов: 466 |
Профиль | Цитата | #10 | Добавлено: 13.10.02 12:16 |
Он сначала читает весь текст в масив, потом посли нужной строки пишет его обратно вфаил потом вставляет строку и дописывает фаил![]() |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8370005 Вопросов: 34 Ответов: 466 |
Профиль | Цитата | #11 | Добавлено: 13.10.02 12:19 |
Кароче он сначала читает фаил, потом пишет обратно в фаил до нужного места, потом вставляет строку и дальше дописывает фаил![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 13.10.02 19:27 |
JEDI. Ты невнимательно прочитал вопрос. Как между ними вставить b=2 не переписывая файл ? А может быть я неверно выразился. Я имел ввиду не закрывая файл. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8370005 Вопросов: 34 Ответов: 466 |
Профиль | Цитата | #13 | Добавлено: 14.10.02 14:24 |
НЕ пиреписывая фаил ты в него не когда строчку не вставишь! Ты всё равно должен переписать фаил!![]() |
Страница: 1 |
|