3 / 3 / 0
Регистрация: 20.07.2012
Сообщений: 50

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

31.07.2012, 14:17. Показов 4150. Ответов 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 / 3923 / 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 / 3923 / 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
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 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
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 14
31.07.2012, 15:16
Цитата Сообщение от vfalex Посмотреть сообщение
е догнал
Цитата Сообщение от vfalex Посмотреть сообщение
понял, что ничего не понял)
- чего же здесь непонятного? Cформулируй!
0
 Аватар для Апострофф
9908 / 3923 / 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
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 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 / 3923 / 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
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru