открытие файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

открытие файла

Сообщение iolaus » 27.10.2006 (Пт) 12:09

у меня есть переменная типо string, в ней содержится шифрованый текс. нужно сохранить его в файл. все нормльно - использую:

open "a.txt" for output as 1
PRINT 1, TXTSTR
CLOSE 1

а вот дальше возникает проблема. мне нужно его считать. а часто получается что в текстовой переменной собеджаться символы конца строки. и соответственно простым Lineinput я его ститать не могу:(

подскажитке пожалуста, как считать сразу весь файл в текстовую переменную!!!!

заранее спасибо.
This message will self destruct in five seconds!!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 27.10.2006 (Пт) 14:07

Если записывать при помощи Print, то читать надо при помощи Line Input, а чтобы считать все содержимое файла используй функцию Input

Dim s As String
s = Input(LOF(1), #1)
Весь мир матрица, а мы в нем потоки байтов!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 27.10.2006 (Пт) 15:01

Да, правильно, но даже Input будет читать файл только до символа Chr(0). Для ПОЛНОГО считывания пиши так:

[code]
Dim FN as integer,Str() as byte,text as string

open "a.txt" for Binary as fn
redim str(lof(fn)-1)
get fn,,str
close fn

text = strconv(str(),vbUnicode)
[\code]
Вроде так (писал не в Basic е поэтому могут быть опечатки)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

AntonGV
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 24.05.2006 (Ср) 12:10
Откуда: г. Пермь

Re: открытие файла

Сообщение AntonGV » 27.10.2006 (Пт) 15:25

iolaus писал(а):как считать сразу весь файл в текстовую переменную

MIT, А как теперь расшифровать это массив?
Если долго мучиться, что-нибудь получится

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 27.10.2006 (Пт) 15:31

text = strconv(str(),vbUnicode)

После этого переменная text будет иметь содержимое файла
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 27.10.2006 (Пт) 15:51

Проще сделать через FSO. Там есть textstream и отличный метод readall.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 27.10.2006 (Пт) 16:02

Ну, можно по всякому, кому как нравится...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 27.10.2006 (Пт) 18:34

я вот нашел на сайте microsoft

Код: Выделить всё
Const ForReading = 1, ForWriting = 2, ForAppending = 3
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Dim fs, f, ts
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(ioDir & GetLogonUser & "." & GetLogonDomainuser & ".iosh")
    Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
    msgbox ts.ReadLine
    ts.Close


спасибо всем!
This message will self destruct in five seconds!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 138

    TopList