Помогите пожалуйста с текст боксом.

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

Помогите пожалуйста с текст боксом.

Сообщение igor74 » 20.02.2012 (Пн) 1:10

При открытии текстового файла,все строки сбиваются.Хотя в исходном файле- каждое слово в новой строке.
Код: Выделить всё
Private Sub Command1_Click()
Dim F As Long
Dim Stroka As String
Text6.Text = ""
CommonDialog1.Filter = "Òåêñòîâûå ôàéëû (*.txt) Ôàéëû äàííûõ (*.dat)|*.txt;*.dat"
CommonDialog1.ShowOpen
F = FreeFile
Text5.Text = CommonDialog1.FileName
Open CommonDialog1.FileName For Input As #F
Do While Not EOF(F)
Line Input #F, Stroka
Text6.Text = Text6.Text & Stroka
Loop
Close #F
End Sub
Вот код. Чем можно исправить такое ?Я имею ввиду что текст должен выводится как Этот код.Построчно.А у меня вылезает.типа так------
Код: Выделить всё
Private Sub Command1_Click()Dim F As Long
Dim Stroka As StringText6.Text = ""CommonDialog1.Filter = "Òåêñòîâûå ôàéëû (*.txt) Ôàéëû äàííûõ (*.dat)|*.txt;*.dat"CommonDialog1.ShowOpenF = FreeFileText5.Text = CommonDialog1.FileNameOpen CommonDialog1.FileName For Input As #FDo While Not EOF(F)Line Input #F, StrokaText6.Text = Text6.Text & StrokaLoopClose #FEnd Sub

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите пожалуйста с текст боксом.

Сообщение Хакер » 20.02.2012 (Пн) 2:52

Ну ты сам так её склеиваешь:
igor74 писал(а):Text6.Text = Text6.Text & Stroka


Допустим, первый раз прочиталось «ААА», а второй раз «БББ». После склеивания будет «АААБББ». Что написал — то и получил.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

igor74
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 20.02.2012 (Пн) 1:01

Re: Помогите пожалуйста с текст боксом.

Сообщение igor74 » 20.02.2012 (Пн) 3:10

Подскажите как исправить.Пожалуйста

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

Re: Помогите пожалуйста с текст боксом.

Сообщение Viper » 20.02.2012 (Пн) 4:46

Перенос строк спасет гиганта мысли. Смотреть в сторону константы vbCrLf,
Весь мир матрица, а мы в нем потоки байтов!

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Помогите пожалуйста с текст боксом.

Сообщение Sam777e » 20.02.2012 (Пн) 6:17

Волшебное слово [ "Пожалуйста"] . . .

Text6.Text = Text6.Text & Stroka & vbCrLf
Здоровья и удачи

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите пожалуйста с текст боксом.

Сообщение Хакер » 20.02.2012 (Пн) 6:19

Идиологически правильнее тогде уж vbNewLine.

Но вообще такой способ выращивать строку — идиотизм, и пахнет алгоритмом маляра Шлемеля.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Re: Помогите пожалуйста с текст боксом.

Сообщение Qwertiy » 20.02.2012 (Пн) 7:46

Sam777e писал(а):Text6.Text = Text6.Text & Stroka & vbCrLf

А может, всё-таки, Text6.Text = Text6.Text & vbCRLf & Stroka?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите пожалуйста с текст боксом.

Сообщение Хакер » 20.02.2012 (Пн) 7:47

Qwertiy писал(а):А может, всё-таки, Text6.Text = Text6.Text & vbCRLf & Stroka?

Тогда текст будет начинаться с пустой строки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 20.02.2012 (Пн) 7:49

Хакер писал(а):Тогда текст будет начинаться с пустой строки.

Да, не подумал, что он сначала пустой...

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Помогите пожалуйста с текст боксом.

Сообщение Sam777e » 20.02.2012 (Пн) 7:59

Согласен, vbNewLine - лучше.
А еще лучше File System Object и читать весь файл в одну строку.

Но, судя по вопросу и волшебному слову, уровень автора вопроса == начинающий. Вот чтобы он не путался с двумя константами [ 1-ая указана Viper 'ом ] я дал свой текст.

Для уважаемого мной Qwertiy : наши способы одинаково плохи / хороши; я знал, что в одном случае будет пустота в начале, а в другом - в конце. Просто не хотел усложнять автору "алгоритм".
Здоровья и удачи

coderx
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 05.09.2005 (Пн) 10:44
Откуда: Узбекистан

Re: Помогите пожалуйста с текст боксом.

Сообщение coderx » 20.02.2012 (Пн) 9:53

Sam777e писал(а):Согласен, vbNewLine - лучше.
А еще лучше File System Object и читать весь файл в одну строку.

Без File System Object'a тоже можно читать вес текст, простыми способами.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 20.02.2012 (Пн) 21:03

Sam777e писал(а):Для уважаемого мной Qwertiy : наши способы одинаково плохи / хороши; я знал, что в одном случае будет пустота в начале, а в другом - в конце. Просто не хотел усложнять автору "алгоритм".

Не, я действительно ошибся - не подумал, что строка пустая. Твой лучше. В качестве оптимизации можно скобки поставить: Text6.Text = Text6.Text & (Stroka & vbCrLf), но читать всё целиком, естественно, лучше.

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Помогите пожалуйста с текст боксом.

Сообщение Sam777e » 21.02.2012 (Вт) 7:14

coderx писал(а):Без File System Object'a тоже можно читать весь текст, простыми способами

Можно, но как справедливо
Хакер писал(а):Идеологически правильнее


( имхо ) применять FSO - всё будет очень прозрачно и ясно.
Здоровья и удачи

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Помогите пожалуйста с текст боксом.

Сообщение Хакер » 21.02.2012 (Вт) 7:31

Sam777e писал(а):( имхо ) применять FSO - всё будет очень прозрачно и ясно.

И что это за идеология, в соответствии с которой внешний компонент, предоставляющий сервисы по работе с файлами, стоит использовать вместо встроенных средств языка, предоставляющих такие средства?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

coderx
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 05.09.2005 (Пн) 10:44
Откуда: Узбекистан

Re: Помогите пожалуйста с текст боксом.

Сообщение coderx » 21.02.2012 (Вт) 11:40

Sam777e писал(а):Можно, но как справедливо идеологически правильнее ( имхо ) применять FSO - всё будет очень прозрачно и ясно.

Сравниваем:
Код: Выделить всё
  Dim fso As FileSystemObject, ts As TextStream, Buffer As String
  Set ts = fso.OpenTextFile("c:\1.txt", ForReading)
  Buffer = ts.ReadAll
  ts.Close
  Set fso = Nothing

и
Код: Выделить всё
  Dim h As Integer, Buffer As String
  h = FreeFile
  Open "c:\1.txt" For Input As #h
  Buffer = Input$(LOF(h), h)
  Close #h

Лишние переменные-объекты и ещё лишний DLL, который нужно всегда таскать с собой.
И я не думаю, что у него будет такой скорость с объектами.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Помогите пожалуйста с текст боксом.

Сообщение Sirik » 21.02.2012 (Вт) 15:24

если будет большой файл, тормоза буду зверские
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки


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

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

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 57

    TopList