Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50

Как считать данные из txt файла, из определенной строки,столбца?

31.07.2012, 14:17. Показов 4176. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
i=0
Do Until EOF(2)
  Line Input #2, mytext
  Dannie(i)=mytext
  i=i+1
loop
Наверняка необязательно заполнять массив целиком, чтобы в последствии воспользоваться только (к примеру) значением 27й строки...

Вариант сделать так

Visual Basic
1
2
3
4
5
6
i=0
Do Until EOF(2)
  Line Input #2, mytext
  if i=27 then Dannie(i)=mytext
  i=i+1
loop
Но что-то подсказывает мне, что этот вариант уж больно тормозной и нубский))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2012, 14:17
Ответы с готовыми решениями:

Как считать данные с учетом знака переноса строки "\n" из файла *.txt
В файл .txt записывается текст из JTextArea в которую пользователь пишет что угодно и как угодно. Например: -123 -еще текст -и...

Как считать данные из файла в определенной структуре?
Доброго времени суток... написал для двух кнопок код одна добавляет человека тоесть " его фамилию дату время" хранит все в...

Как из файла txt считать данные в массив?
Добрый день. С с++ у меня очень плохо, но срочно нужно сделать одну вещь. Есть файл file.txt, в нем располагается массив данных, к...

17
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
31.07.2012, 14:25
Цитата Сообщение от vfalex Посмотреть сообщение
необязательно заполнять массив целиком, чтобы в последствии воспользоваться только (к примеру) значением 27й строки...
в четвертую строку Exit Do
Visual Basic
1
if i=27 then Dannie(i)=mytext: exit do
А что-то более красивое для обычного текстового файла придумать не так просто
1
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 14:30  [ТС]
В txt файле, хранятся сохранения моей проги))
Как я понял из ваших слов, txt - не самый лучший для этого формат))
Тогда как сделать более красиво?))
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
31.07.2012, 14:36
Цитата Сообщение от vfalex Посмотреть сообщение
Тогда как сделать более красиво?))
Запись значений каждую секунду
0
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 14:41  [ТС]
Ладно, проехали...
Ничего не понял из той ссылки))
Буду думать как сделать по другому)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
31.07.2012, 14:55
Вот здесь описан класс для работы текстовыми файлами, как с массивами строк.

Добавлено через 6 минут
А вот пример работы. При этом предполагается, что в VB-проекте установлена ссылка (Reference) на библиотеку Bservy.dll:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Main()
 
Dim txtStream As BServy.Fstr
 
    HomeDir$ = ThisWorkbook.Path
    
    Set txtStream = New BServy.Fstr
 
    txtStream.DosMode = True    ' Разделитель строк 13,10
 
    txtStream.fstrOpen HomeDir$ + "\11111111.txt"
    
    Stri$ = txtStream.GetLine(10)
    
    Stri$ = txtStream.GetLine(5)
    
    Stri$ = txtStream.GetLine(100)
 
    txtStream.fstrClose
 
    Set txtStream = Nothing
 
End Sub
PS

Строки можно, к сожалению, только читать.
2
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 15:00  [ТС]
1 Скачал, прочитал, не догнал...
2 Посмотрел ваш пример работы и понял, что ничего не понял))
Подожду до завтра, если никто не подскажет как проще это сделать или не покажет более простой, наглядный пример, тогда пойду другим путем)
P.S. Спасибо за помощь нубу))
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
31.07.2012, 15:16
Цитата Сообщение от vfalex Посмотреть сообщение
е догнал
Цитата Сообщение от vfalex Посмотреть сообщение
понял, что ничего не понял)
- чего же здесь непонятного? Cформулируй!
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
31.07.2012, 15:26
Цитата Сообщение от vfalex Посмотреть сообщение
В txt файле, хранятся сохранения моей проги))
А можно поподробнее?
Это что-то типа настроек проги, т.е. файл не растущий во времени?
Или как бы лог-файл?
Если покажешь структуру файла - то отчего бы не подсказать
0
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 15:43  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
- чего же здесь непонятного? Cформулируй!
Не знаю ни одного оператора/команды из вашего примера...)))
0
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 15:47  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
А можно поподробнее?
Это что-то типа настроек проги, т.е. файл не растущий во времени?
Или как бы лог-файл?
Если покажешь структуру файла - то отчего бы не подсказать
по рукам))
Вложения
Тип файла: txt 7.2012.txt (386 байт, 23 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
31.07.2012, 15:49
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Main()  ' заголовок процедуры
 
Dim txtStream As BServy.Fstr  ' описание объекта "текстовый поток"
 
    HomeDir$ = App.Path ' получаем директорию, в которой лежит экзешник (тут было раньше для VBA)
    
    Set txtStream = New BServy.Fstr  ' создаем объект
 
    txtStream.DosMode = True    ' Установка свойства "Разделитель строк" 13,10 
 
    txtStream.fstrOpen HomeDir$ + "\11111111.txt"  ' открываем текстовый поток
    
    Stri$ = txtStream.GetLine(10)   ' читаем сразу 10-ю строку
    
    Stri$ = txtStream.GetLine(5)    ' а теперь - 5-ю
    
    Stri$ = txtStream.GetLine(100) '  а теперь - 100-ю
 
    txtStream.fstrClose       ' закрываем поток
 
    Set txtStream = Nothing  ' уничтожаем объект
 
End Sub

Легче?
1
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 15:55  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Main()  ' заголовок процедуры
 
Dim txtStream As BServy.Fstr  ' описание объекта "текстовый поток"
 
    HomeDir$ = App.Path ' получаем директорию, в которой лежит экзешник (тут было раньше для VBA)
    
    Set txtStream = New BServy.Fstr  ' создаем объект
 
    txtStream.DosMode = True    ' Установка свойства "Разделитель строк" 13,10 
 
    txtStream.fstrOpen HomeDir$ + "\11111111.txt"  ' открываем текстовый поток
    
    Stri$ = txtStream.GetLine(10)   ' читаем сразу 10-ю строку
    
    Stri$ = txtStream.GetLine(5)    ' а теперь - 5-ю
    
    Stri$ = txtStream.GetLine(100) '  а теперь - 100-ю
 
    txtStream.fstrClose       ' закрываем поток
 
    Set txtStream = Nothing  ' уничтожаем объект
 
End Sub

Легче?
Легче, но все равно не понятно))
Я правильно понял, что вы работаете с созданным этим кодом текстовиком?
Мне надо, чтобы оно работало с моим, уже существующим текстовым файлом, как в моем примере(в вопросе)

Если я неправильно вас понял, тогда не тратьте время на меня, ибо операторы/команды в вашем примере мне не знакомы, а взять и сходу их понять без подробного объяснения я точно не смогу))

Но в любом случае Вам респект за трату времени на меня))
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
31.07.2012, 15:59
В файле только целые числа < 32767, в каждой строке по одному?!
Поищи в справке или нете open for random
Одним махом можно считать и записать массив, не пользуясь никакими библиотеками...

Извини, отъезжаю на энное время
0
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 16:04  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
В файле только целые числа < 32767, в каждой строке по одному?!
Поищи в справке или нете open for random
Одним махом можно считать и записать массив, не пользуясь никакими библиотеками...

Извини, отъезжаю на энное время
Именно, в каждой строке по одному целому, четырех или пятизначному числу(выручка за день)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
31.07.2012, 16:24
Цитата Сообщение от vfalex Посмотреть сообщение
Я правильно понял, что вы работаете с созданным этим кодом текстовиком?
- читать можно любые текстовые файлы

Я посмотрел твой файл. В нем 93 строки. Даже если бы их было 9300 - это мало! Вот если бы 9300000 - тогда другое дело. А так - не парься:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim Sum(1 to 10000) As Currency  ' 10000 эл-тов c гарантией
 
     fi%=FreeFile
 
     Open "Имя_файла" for input As #fi%
 
     p%=0
 
     Do While not EOF(fi%)
 
             Line input #fi%,Stri$
 
             p%=p%+1
 
             Sum(p%)=Val(Stri$)
 
      Loop
 
      close #fi%
 
 
      ' сейчас у тебя в массиве Sum элементы с 1-го по p%-й - суммы из твоего файла.
      ' выполнение займет долю секунды
1
3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50
31.07.2012, 17:58  [ТС]
Ну я и пошел тем же путем))
А потом работал с массивом proshloe(92), в которым нет сложностей получения доступа к нужной ячейке))
Изначально так и хотел, но думал, что есть простой способ добраться до нужной строки...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim proshloe(92) as  long
mes$ = "D:\Работа\"
imaold$ = Left(mes$, 10) & Month(Date) - 1 & "." & Year(Date) & ".txt"
i = 0
Open imaold$ For Input As #2                     ' считываем сохраненные данные из *.тхт за прошлый месяц
  Do Until EOF(2)
    Line Input #2, mytext
    proshloe(i) = mytext
    i = i + 1
    If i = 92 Then GoTo 4
  Loop
4 Close #2
 Комментарий модератора 
Учимся пользоваться тэгами!
Над редактором сообщений есть кнопки тэгов.
[VB] - это наша. Жмёшь и вставляешь код.
Или выделяешь код и жмёшь...
Последнее китайское...


Добавлено через 53 минуты
Окей, прости...
Не думал, что так критично...
Я просто в таком виде сам не пишу, вот и забываю транспонировать...
Больше не повториться))
1
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
01.08.2012, 09:08
Visual Basic
1
2
3
Open imaold$ For Input As #2                     ' считываем сохраненные данные из *.тхт за прошлый месяц
  Do Until EOF(2)
    Line Input #2, mytext
Как вариант можно считать сразу весь файл и разбить на массив.
Visual Basic
1
2
3
4
5
6
7
8
9
   Dim File As String, CF As String 
   'объявим пеpеменнyю для имени файла и его cодеpжимого 
   File = "d:\ca.log" 
   'ycтановим имя файла и пyть 
   Open File For Binary As #1 
   'откpоем файл для чтения 
      CF = Input(FileLen(File), 1)   'загpyзить в пеpеменyю CF вcе cодеpжимое файла 
   Close #1 
МАССИВ= Split(CF,VbNewline)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2012, 09:08
Помогаю со студенческими работами здесь

Как Считать данные из txt файла с условием?
Добрый день! Помогите разобраться в каком направлении двигаться. Необходимо прочитать и вывести на экран часть содержимого текстового...

Считать данные из .txt файла
Всем привет! Мне нужно считать данные из .txt файла и вывести их в RichEdit, но не удаётся создать файл для чтения.Использую функции...

Как ввести данные из определённой строки текстового файла в переменную?
необходимо в переменной second указать четвертую строку q.txt @echo off setlocal enabledelayedexpansion set file=text.txt set...

Как считать данные из файла с заданной строки?
Доброго времени суток, ребята! Подскажите пожалуйста, можно ли с помощью объекта класса StreamReader как-нибудь считывать данные не с...

Извлечение определённой строки из txt файла
вот код чтения файла и добавления в datagridview строк какое условие надо дописать чтобы он добавлял в datagridview только ту строку в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru