Программирование
Веб программирование

Файлы в visual basic. Продолжение

 
 

Запись:
Для записи текста служит функция Print(и Write)

Open "c:1.txt" For Append As #1 'Открываем файл для добавления записи, с номером канала 1
Print #1, "Твой ТЕКСТ"' Записываем в файл 1.txt текст 
Close #1 'Закрываем файл

Есть еще функция для определения свободного канала - FreeFile. Например:

f = FreeFile 'Возвращает номер свободного канала
Open "c:1.txt" For Append As f 'Открываем файл для добавления записи
Print #f, "Твой ТЕКСТ"'Записываем в файл 1.txt текст 
Close #f 'Закрываем файл

Чтение:
Считать данные из файла сложнее чем записать. Есть два способа чтения данных из файла. Первый:

f = FreeFile
Open "c:1.txt" For Input As f' Открываем файл 1.txt для чтения
Text1.Text = Input(LOF(f), f) 'Считываем текст из открытого файла в текстовое поле(Оператор LOF(Len Of File) определяет длину файла)
Close f 

Второй:

Dim txt as String

Open "c:1.txt" For Input As #1' Открываем файл 1.txt для чтения
Do While Not EOF(1) ' Функция EOF(End Of File) проверяет, достигнут ли конец файла
Line Input #1, txt ' Читаем строку данных
Text1.Text = txt 
Loop
Close #1

Есть вопросы? Спроси на нашем форуме!!
Андрей [06.06.2010 17:08]

Можно ли как-нибудь узнать номер канала открытого файла по его имени?

Александр [13.11.2010 21:13]

как сделать что бы так на хосте записывало????

/ [06.03.2011 16:39]

у меня не работают оба способа чтения.запускаю прогу а vb виснет

/ [06.03.2011 16:46]

сори.первый работает, а вот второй нет

Артём [23.03.2011 15:57]

люди, исправьте во втором dim на dir
у меня получилось

че за жопа? нифига не выходит. наверно это для VB 6.0 [23.03.2011 18:30]
Александр(2) [30.03.2011 17:05]

У меня все работают. У меня VB 6.0.

Багир [17.04.2011 12:44]

Отдельное спасибо за Input(LOF(f), f)

Шурик [29.05.2011 17:02]

Не ну так-то Багир прав, то бишь зе фёрст случай читает только первую строку,
а зе секонд случай все строчки считывает.

Gomz [13.06.2011 20:09]

Как считать по байтно бинарный файл *.bin?
Надо считать *.bin и представить данные в HEX формате. 1010 1111 = AF

Gomz [13.06.2011 20:12]

Как считать по байтно бинарный файл *.bin?
Надо считать *.bin и представить данные в HEX формате. 1010 1111 = AF

Антоха [01.12.2011 14:57]

Всё работает!!!

VOGANc12 [01.12.2011 16:19]

Щикарно))

AlexR [16.12.2011 22:20]

У меня задача открыть три файла. Два для последовательного чтения и один для записи результата после обработки данных. Пока получается что-то невообразимое6 теряются имена файлов присвоенные через Common Dialog

-Гепард97- [09.01.2012 10:53]

2 AlexR: Ну и правильно, что теряются. После выбора следующего файла его путь пишется во все тот же .FileName, эта переменная чистится перед записью. А посему пиши ка после каждого считывания имени файла через CD содержимое в отдельную переменную. И проблем не будет ИМХО. Делаешь например массив FileNames(2) (получаются 3 переменные - FileNames(0), FileNames(1), FileNames(2)), и пишешь в них имена файлов.

Владимир [10.01.2012 21:02]

у меня тема такая,я делаю кнопку на открытие нового файла VB как это сделать,или открывать можно тольkо ***.txt

Юра (Shade) [10.01.2012 21:18]

"Владимир" что ты имеешь ввиду?

алексей [10.01.2012 21:55]

Владимир, вот
http://vbbook.ru/visual-basic/vb-rabota-s-faiylami-zapysk-faiylov/
Shell "start c:1.txt", vbHide
вместо txt можно писать любой формат

петя [23.01.2012 14:10]

где писать это?

Гость [30.09.2012 14:39]

Public Class Form1
Dim w As String
Private Sub Button1Click(sender As Object, e As EventArgs) Handles Button1.Click
w = TextBox1.Text
MsgBox("Не установлено соединение или неправильно введен пароль", 48, "Ошибка при соединение")

это для записи
My.Computer.FileSystem.WriteAllText("D:1.txt", w, True)
End Sub
Private Sub Button2
Click(sender As Object, e As EventArgs) Handles Button2.Click
End
End Sub
End Class

vavadim [05.02.2013 11:41]

Подскажите, как открыть файл (например для чтения), указывая Имяфайла не в кавычках ("Имяфайла.txt"), а переменную в которой хранится имя файла?

НЕ ТАК: Open "c:1.txt" For Input As f

а как-то так: Str=c:1.txt
Open Str For Input As f

alex13sh300 [05.02.2013 17:35]

vavadim, и что у тебя неполучается??
dim filNameStr as String
filnameStr = "c:1.txt"
Open filnameStr For Input As f

то что ты написал Str=c:1.txt
Во первых почему то без ковычек и во вторых надо ставить

alex13sh300 [05.02.2013 17:36]

всё ясн знак (92) удаляется

vavadim [11.02.2013 15:57]

alex13sh40, спасибо!

еще вопрос (не очень по теме): как запустить скрипт (script.js) в visual basic?

admin1310 [11.02.2013 16:49]

хз этим ещё не занимался)
Stertor, должен знать)

alex13sh300 [11.02.2013 16:50]

хз этим ещё не занимался)
Stertor, должен знать)

admin1310 [11.02.2013 19:50]

Попробуй при помощи Shell в VB запустить скрипт

vavadim [12.02.2013 08:21]

подскажите пожалуйста синтаксис! все, что находил - не получилось(

Shade970 [12.02.2013 09:15]

Попробуй запустить скрипт таким способом
Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) _
As Long

Private Sub Command1
Click()
Call ShellExecute(1&, "Open", "D:\1.vbs", vbNullString, vbNullString, 1&)
End Sub

Ivan40 [17.07.2013 23:20]

Я ввёл код для записи текста в текстовик:

Option Explicit
Private Sub Command1_Click()
Open "c:1.txt" For Append As #1 'Открываем файл для добавления записи, с номером канала 1
Print #1, "Твой текст" 'Записываем в файл 1.txt текст
Close #1 'Закрываем файл
End Sub

С файлом при нажатии кнопки ничего не происходит. Что делать?

alex13sh300 [17.07.2013 23:45]

попробуйте Метод OutPut

noobiry [02.04.2014 16:19]

а как сделать чтобы отображалась считываемая информация не в 1 слитную строку, а так как в оригинале, например у меня в текстом файле 2 строки:
текст
текст
при считывании у меня получается тексттекст
?

Stertor370 [02.04.2014 16:48]

Добавить символ перевода каретки. Вот так:

Line=line & vbcrlf

Stertor370 [02.04.2014 17:17]

Попробуй вот так добавлять (совйство multiline в textbox поставь в true):

Sub AddLine(tb As textbox, text As String)
tb.SelStart = Len(tb.text)
tb.SelText = vbCrLf & text
End Sub

пример.

addline text1.text ,"ololo"

Tawan [16.05.2016 14:15]

Подскажите, пожалуйста, как задать число строк, чтобы отображение текста в файле txt начиналось, например, с 50-той строки?

Tawan [16.05.2016 14:17]

И как печатать во всю страниц, растянуть до размеров страницы?

pjp07190 [23.05.2016 10:26]

Подскажите, пожалуйста, как задать число строк, чтобы отображение текста в файле txt начиналось, например, с 50-той строки?

Выводит 49 пустых строк
for i=1 to 49
Print #1, " "
next i



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.