Подскажите кто-нибудь, как считать в этом языке данные из текстового файла и как их туда записать (другой язык не пойдёт). Заранее спасибо,
[Ответ]
alexenin 18:43 19.03.2008
В хелпе есть примеры. Ищи Stream class, samples
[Ответ]
RDman 19:19 19.03.2008
DeniSS1, Очень просто.
Для начала нужно открыть файл. Делается это командой Open.
Читаем файл в текстовое поле:
Dim MyFile as String
MyFile="C:\MyFile.txt" 'в переменную путь впишешь свой
'Открываем файл на чтение информации из него
Dim OpenFile as String ' в эту переменную запишем данные из файла
Open MyFile for Input as #1 'Открыли файл
Do Until EOF(1) ' Cчитать файл до конца в переменную
Line Input #1, OpenFile
Text1.Text= Text1. Text & OpenFile & vbCrLf 'выводим данные из переменной в текстовое поле + перевод каретки vbCrLf
Loop ' Конец цикла считывания файла.
Close #1
Пишем данные в файл из текстового поля твоей проги.
'Здесь есть несколько вариантов - создание и запись данных в файл, перезапись существующего файла,
'добавление строки в существующий файл. Итак, если файла нет,
'он создается командой Open
Dim MyFile as String
MyFile= "C:\MyFile.txt"
Open MyFile for Output as #1 'Открываем на запись, или создание + запись
Print #1, Text1.Text
Close #1
Open MyFile for Append as #1 ' эта команда дописывает строку в файл
Print #1, Text1.Text
Close #1
Можно пользоваться объектной моделью File System Object, об этом сам почитаешь в букваре по VB [Ответ]
DeniSS1 20:43 19.03.2008
Всем спасибо, особенно RDman! Тему пока не закрываю - по ходу выполнения конкурсного задания могут ещё возникнуть вопросы.
[Ответ]
DeniSS1 21:02 19.03.2008
RDman, пишу "Open AddresInfAboutMarshrut for Input as #1" - а он тут же подчёркивает! В чём дело, почему?
[Ответ]
RDman 21:15 19.03.2008
DeniSS1, порылся в своей литературе, у меня нигде не упоминается выражение AddresInfAboutMarshrut .... Что оно делает? Или это какой-то твой тип данных, который ты сам определяешь?
Кстати, бейсик у меня не определяет его. Ты кстати ипользуешь какой VB? VB6, VB.Net, VBA или VBScript?
Изображения
DeniSS1, я по старинке VB6... Какие данные в твоей переменной находятся?
[Ответ]
DeniSS1 21:30 19.03.2008
Вот кусок кода, курсив - подчёркнутое.
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
AddresInfAboutMarshrut = TextBox1.Text Open AddresInfAboutMarshrut for Input as #1 'Открыли файл
Do Until EOF(1) ' Cчитать файл до конца в переменную Line Input #1, InfAboutMarshrut
TextBox2.Text = TextBox2.Text & InfAboutMarshrut & vbCrLf 'выводим данные из переменной в текстовое поле + перевод каретки vbCrLf
Loop ' Конец цикла считывания файла.
Close #1
End Sub
[Ответ]
DeniSS1 21:32 19.03.2008
Переменная объявлена как String. Может, версии языка слишком разные?
[Ответ]
RDman 21:36 19.03.2008
AddresInfAboutMarshrut = TextBox1.Text - здесь у тебя путь к файлу или что?
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click - я 2005 не очень знаю, там таков синтаксис?
Еще момент. Cама переменная объявлена, командой Dim ?
Dim AddresInfAboutMarshrut As ... <тип>
RDman, 1-е - да. 2-е - такой, проверено. 3-е - да, и тип у неё - String. Это НЕ массив.
4-е - а что это? :-)
[Ответ]
RDman 21:53 19.03.2008
Сообщение от DeniSS1:
Переменная объявлена как String. Может, версии языка слишком разные?
версии разные, база одинакова. На то он и язык. 2005 здорово отличается, конечно. Но ключевые слова и принцип примерно одинаков. Хотя разница разительная.
Сообщение от RDman:
Option Explicit у тебя включен?
Незнаю как организовано в 2005м, в VB6 команда Option Explicit требует явную декларацию переменных. Т.е. прежде чем использовать переменную в программе, ты ее сначала должен объявить словом Dim. Бейсик, в отличии, например, от Дельфи, разрешает не объявлять явно переменные, но это крайне неудобно, особенно в больших кодах. Можно попутаться и выполнение проги может дать ошибочный результат. Например переменные
ballon="ballon"
и
balon="ballon"
визуально трудно различаются, но бейсик их различает. Ты думаешь, что у тебя одна переменная, а бейсик создает две "на лету" (если не установлен Option Explicit). Option Explicit заставляет программиста явно объявлять каждую переменную, что исключает подобные ситуации.
В настройках Бейсика надо включить "требовать явное определение переменных", по умолчанию эта функция может быть отключенной. После этого в окнах кодов форм и модулей в самом верху будет появляться Option Explicit. Можно вписывать вручную эту команду в самом верху над остальным кодом.
RDman, всё, я нашёл, как это сделать. Вот примеры для сравнения.
VB6 ............... и .............. VB 2005
Print #fFile, "Some text"....... PrintLine(fFile, "Some text") Записывает строку в файл и добавляет символ новой строки.
Print #fFile, "Some text";..... Print(fFile, "Some text") Записывает строку в файл.
Write #fFile, "Some text"...... WriteLine(fFile, "Some text") Записывает строку в файл, добавляя двойные кавычки в начале и конце строки и символ новой строки.
Write #fFile, "Some text";..... Write(fFile, "Some text") Записывает строку в файл, добавляя двойные кавычки в начале и конце строки
[Ответ]
DeniSS1 17:11 20.03.2008
Так, стоп, это только вывод, а мне нужен ещё и ввод... Не подскажите, как это сделать, а то траф кончился...
[Ответ]
Там нет таких примеров на .net. В нашем (Борисоглебском) магазине - тоже. Остался один вариант: я запостил этот вопрос на куче форумов, теперь жду. [Ответ]