Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как такое сделать? / 25 сообщений из 38, страница 1 из 2
28.03.2010, 14:29
    #36546812
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Нужно сделать загрузку текстового файла, через ActiveX.
Например у меня есть текст в блокноте, нужно запихнуть его в текстбокс.
...
Рейтинг: 0 / 0
28.03.2010, 14:38
    #36546817
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Почитайте про команду Open в хелпе.
Там и примеры есть.
...
Рейтинг: 0 / 0
28.03.2010, 14:40
    #36546820
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
У меня хелп не открывается, у меня вин7
...
Рейтинг: 0 / 0
28.03.2010, 14:41
    #36546823
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
а интернет у вас тоже не открывается?

смотрите в msdn.microsoft.com
...
Рейтинг: 0 / 0
28.03.2010, 14:41
    #36546824
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Вот нашел исходник

авторPrivate Sub Command1_Click()
Dim F As Long
Dim Stroka As String
Text1.Text = ""
CommonDialog1.Filter = "Òåêñòîâûå ôàéëû (*.txt)|*.txt"
CommonDialog1.ShowOpen
F = FreeFile
Text2.Text = CommonDialog1.FileName
Open CommonDialog1.FileName For Input As #F
Do While Not EOF(F)
Line Input #F, Stroka
Text1.Text = Text1.Text & Stroka
Loop
Close #F
End Sub
После строки CommonDialog1.ShowOpen нечего не понимаю(
...
Рейтинг: 0 / 0
28.03.2010, 14:51
    #36546842
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsПосле строки CommonDialog1.ShowOpen нечего не понимаю(

Вы знаете имя файла, которое вы хотите открыть или его должен выбрать пользователь?
...
Рейтинг: 0 / 0
28.03.2010, 14:52
    #36546844
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Плиз, оформляйте код с помощью соответствующих тэгов. А также правильно указывайте заголовок темы.
...
Рейтинг: 0 / 0
28.03.2010, 16:28
    #36546910
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Файл любой текстовик. doh.txt
F = FREEFILE зачем эта строка?
Text2.Text = CommonDialog1.FileName название файла поместить в текстовое поле
OPEN CommonDialog1.FileName FOR INPUT AS #F Открыть Название_файла.тхт (FOR INPUT AS #F не понимаю)У нас препод блин конечно, сказал разберете сами, а команду опен я никогда не встречал(
...
Рейтинг: 0 / 0
28.03.2010, 16:35
    #36546918
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsF = FREEFILE зачем эта строка?

Запрашивает у ОС свободный дескриптор файла и присваивает переменной F, чтобы в дальнейшем работать с ней

bosscsOPEN CommonDialog1.FileName FOR INPUT AS #F
Открыть Название_файла.тхт (FOR INPUT AS #F не понимаю)

FOR INPUT - уточнение, что файл открывается для чтения (не для записи)
AS #F - связывает открываемый файл с переменной F
...
Рейтинг: 0 / 0
28.03.2010, 16:56
    #36546928
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Shocker.ProbosscsF = FREEFILE зачем эта строка?

Запрашивает у ОС свободный дескриптор файла и присваивает переменной F, чтобы в дальнейшем работать с ней

Типа запрашивает место, для считывания файла?

DO WHILE NOT EOF(F) 'EOF это конец файла? Как оно понимает?
LINE INPUT #F, Stroka 'считываем строку
Text1.Text = Text1.Text & Stroka 'добавляем ее к содержимому
Text1.Text(Text1.MultiLine=True)' Это ты вообще откуда нарисовал?)
Text1.Text = Text1.Text & Stroka оно записывает все в 1 строку. Как мне записывать каждую строку через пробел?
...
Рейтинг: 0 / 0
28.03.2010, 17:02
    #36546934
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsТипа запрашивает место, для считывания файла?

Нет. Запрашивает указатель на файл, по которому его будет идентифицировать операционная система.

bosscsDO WHILE NOT EOF(F) 'EOF это конец файла? Как оно понимает?

EOF=End Of File - да, конец файла. Ну, собственно, когда в файле закончились строки, которые можно считать командой INPUT

bosscsText1.Text(Text1.MultiLine=True)' Это ты вообще откуда нарисовал?)

Присоединяюсь к вопросу :)

bosscsText1.Text = Text1.Text & Stroka оно записывает все в 1 строку. Как мне записывать каждую строку через пробел?

Код: plaintext
Text1.Text = Text1.Text & " " & Stroka
...
Рейтинг: 0 / 0
28.03.2010, 17:22
    #36546947
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Shocker.ProbosscsТипа запрашивает место, для считывания файла?

Нет. Запрашивает указатель на файл, по которому его будет идентифицировать операционная система.

Тоесть можно было написать просто
F = 1
А если нужно загружать 2й файл то 2 например.
Фри файл это что бы не искать свободное? Типа есть уже 1 и 2, оно их брать не будет?

bosscsText1.Text = Text1.Text & Stroka оно записывает все в 1 строку. Как мне записывать каждую строку через пробел?
Тю блин, че эт я написал. Не пробел а энтер...Пора бросать пить.
...
Рейтинг: 0 / 0
28.03.2010, 17:27
    #36546952
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsТоесть можно было написать просто
F = 1

Это если есть уверенность, что дескриптор 1 свободен.
Для этой уверенности и существует функция FreeFile

bosscsА если нужно загружать 2й файл то 2 например.
Фри файл это что бы не искать свободное? Типа есть уже 1 и 2, оно их брать не будет?

Код: plaintext
1.
2.
Dim F1 As Long, F2 As Long
F1=FreeFile
F2=FreeFile

bosscsbosscsText1.Text = Text1.Text & Stroka оно записывает все в 1 строку. Как мне записывать каждую строку через пробел?
Тю блин, че эт я написал. Не пробел а энтер...Пора бросать пить.

Код: plaintext
Text1.Text = Text1.Text & vbCrLf & Stroka
...
Рейтинг: 0 / 0
28.03.2010, 17:42
    #36546963
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Shocker.Pro

Код: plaintext
1.
2.
Dim F1 As Long, F2 As Long
F1=FreeFile
F2=FreeFile
Это вообще что?
А я вообще правильно понял? А то ты не написал не да не нет)
Фри файл любое число от 1 до 255, которое не используется в программе, т.е если есть 1 то уже 1 брать не будет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Form_Load()
Dim F1 As Long, F2 As Long
F1 = FreeFile
F2 = FreeFile
Print F1
Print F2
End Sub
Написал это, нечего не выводит

Код: plaintext
Text1.Text = Text1.Text & vbCrLf & Stroka

Записало все в 1 строку
...
Рейтинг: 0 / 0
28.03.2010, 17:49
    #36546967
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsЗаписало все в 1 строку

Проверьте свойство MultiLine у поля Text1
...
Рейтинг: 0 / 0
28.03.2010, 17:56
    #36546975
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Мульти лайн тру.
Так я правильно понял или нет??? хД)))
...
Рейтинг: 0 / 0
28.03.2010, 17:58
    #36546977
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsМульти лайн тру.
Так я правильно понял или нет??? хД)))

Должно быть True, чтобы в поле могли отображаться несколько строк
...
Рейтинг: 0 / 0
28.03.2010, 18:09
    #36546990
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
аааа)))) Я не это просил))))))
Я про это:
Фрифайл любое число от 1 до 255, которое не используется в программе, т.е если есть 1 то уже 1 брать не будет.
Да/нет?
...
Рейтинг: 0 / 0
28.03.2010, 18:17
    #36546999
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
MSDN FreeFile Function

Returns anInteger representing the nextfile number available for use by the Open statement.

Syntax

FreeFile[(rangenumber)]

The optional rangenumber argument is aVariant that specifies the range from which the next free file number is to be returned. Specify a 0 (default) to return a file number in the range 1 – 255, inclusive. Specify a 1 to return a file number in the range 256 – 511.

Remarks

Use FreeFile to supply a file number that is not already in use.
...
Рейтинг: 0 / 0
28.03.2010, 18:24
    #36547007
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Я так понял ответ да. Тогда почему не выводит здесь:
авторPrivate Sub Form_Load()
Dim F1 As Long, F2 As Long
F1 = FreeFile
F2 = FreeFile
Print F1
Print F2
End Sub
...
Рейтинг: 0 / 0
28.03.2010, 18:29
    #36547011
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsЯ так понял ответ да. Тогда почему не выводит здесь:

1) Поставьте форме свойство AutoRedraw в значение True - будет выводить.

2) В таком виде напечатается две единицы. Потому что после получения дескриптора его надо задействовать (командой Open), а потом уже получать второй.
...
Рейтинг: 0 / 0
28.03.2010, 18:34
    #36547018
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Shocker.Pro
1) Поставьте форме свойство AutoRedraw в значение True - будет выводить.

Не понял. Зачем? Что это свойство делает?

Private Sub Command1_Click()
Dim F1 As Long, F2 As Long
F1 = FreeFile
Open C:\Users\bosscs\Desktop\Íîâûé_òåêñòîâûé_äîêóìåíò.txt For Input As #F1
F2 = FreeFile
Print F1
Print F2
Print FreeFile
Print FreeFile
End Sub

На этой строке Open C:\Users\GuitarFan\Desktop\Íîâûé_òåêñòîâûé_äîêóìåíò.txt For Input As #F1
Пишет синтаксис еррор
...
Рейтинг: 0 / 0
28.03.2010, 18:38
    #36547021
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
bosscsНе понял. Зачем? Что это свойство делает?

Автоматически отрисовывает то, что вы напечатали или нарисовали непосредственно на теле формы. Так как при отработке события Form_Load форму еще не видно на экране - это необходимо.


bosscsНа этой строке Open C:\Users\GuitarFan\Desktop\Íîâûé_òåêñòîâûé_äîêóìåíò.txt For Input As #F1
Пишет синтаксис еррор

Потому что текстовые константы надо брать в кавычки.
...
Рейтинг: 0 / 0
28.03.2010, 18:53
    #36547033
bosscs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Огромное спасибо что меня терпели, все получилось)
...
Рейтинг: 0 / 0
29.03.2010, 23:22
    #36549370
MetalFan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Private Sub Command1_Click()
Dim F As Long
Dim Stroka As String
'On Error GoTo Errors
CommonDialog1.CancelError = True
Text1.Text = ""
CommonDialog1.Filter = "Òåêñòîâûå ôàéëû (*.txt)|*.txt"
CommonDialog1.DialogTitle = "Îòêðûòü ôàéë"
CommonDialog1.ShowOpen
F = FreeFile
Text2.Text = CommonDialog1.FileName
Open CommonDialog1.FileName For Input As #F
Do While Not EOF(F) ' End of file
Line Input #F, Stroka
Text1.Text = Text1.Text & vbCrLf & Stroka
Loop
'Close #F
End Sub
'Errors:
'If Err.Number = cdlCancel Then
'Exit Sub
'Else
'MsgBox Err.Description
'End If
'End Sub


Private Sub Command4_Click()
'F = FreeFile
'On Error GoTo Cansel
CommonDialog1.CancelError = True
CommonDialog1.Filter = "Текстовые файлы (*.txt)|*.txt"
CommonDialog1.Flags = cdlOFNOverwritePrompt
CommonDialog1.DialogTitle = "Сохранить текстовой файл как..."
CommonDialog1.ShowSave
Open CommonDialog1.FileName For Output As #F
Close #F
Exit Sub
'Cansel1:
'If Err.Number = cdlCancel Then
'Exit Sub
'Else
'MsgBox Err.Description
'End If
'End Sub

End Sub

Плз, поскажите почему не получается сохранить файл, который я открыл?
Не совсем понимаю, получается нужно вывести ту же переменную F? Или нужно новую для вывода?И что у меня не так?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как такое сделать? / 25 сообщений из 38, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]