powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и печать данных из .txt нужна помощь
14 сообщений из 14, страница 1 из 1
Поиск и печать данных из .txt нужна помощь
    #38574159
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте форумчане,
Сразу предупреждаю что я уже 8 лет живу в Бельгии и программировать учусь тут, так что если я использую не те термины то строго не судите.

У меня есть небольшая проблема с написанием очередной программы.
Нужно написать программу которая позволяет найти и выбрать текстовый документ в котором хранятся данные. Примерно такого формата: статус/каталог/тип/группа1/группа2/группа3/код/продукт/ISBномер/.... и так далее 60 групп данных(на Нидерландском языке) И вот эти данные хранятся отдельными линиями, ну то есть через энтер.
например:

активный/j/книги/5970///100210/"название книги"/0-201-61592-7/...
активный/j/книги/5993///100228/"название книги"/0-201-61575-1/...

Нужно по названию продукта провести поиск во всём текстовом файле, найти все продукты(группа 8) со словом "inkthervulling" и вывести на экран полное название и цену(16 группа, перед 16 слэшем), после чего распечатать как прайслист с лого и адресом компании.

вот то что у меня уже есть, дальше не получается.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Button1_Click(sender As Onject, e As EventArgs) Handles Button1_Click
 
Dim rij(50) As string
Dim nofd As New OpenFileDialog
Dim i As Integer
 
nofd.Filter = "Text Files (*.txt)|*.txt"
nofd.InitialDirectory = My.Computer.Filesystem.SpecialDirectories.Desktop
If nofd.ShowDialog <> Windows.Forms.Dialogresult.OK Then Exit Sub
 
Dim myfile As Sting = nofd.FileName
Dim reader As New System.IO.StreamReader(myfile)
Dim lines = system.File.IO.File.ReadAllLines(myfile)
 
For i=0 to lines.Length - 1
If lines(i).Contains("Inkthervulling") Then
rij(i)=lines(i)
End If
Next
 
End Sub



Заранее большое спасибо за ответы и советы.

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574184
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка у тебя уже получена.
Теперь определи динамический массив, и функцией Split подели в него строку, указав разделитель (слэш). После чего просто выводи нужные элементы массива.
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574196
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но как я понимаю строка у меня слишком большая что бы влезать в ряд:
"Index was outside ther bounds of the array."
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574229
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c05SepthНо как я понимаю строка у меня слишком большая что бы влезать в ряд:
"Index was outside ther bounds of the array."
Неверно.
Эта ошибка говорит о том, что вы "вылезли" из массива. Количество найденных строк
превысило 50.
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574231
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c05Septh,

Для создания коллекции найденных строк используйте List
в него можно добавлять без опасений превысить предел.
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574300
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, микроскоп, но можно еще регексами

типа ^(.*)/(.*)/.../Название книги/.../(.*) $
и далее смотреть группы.

Но это как вариант.
Если речь идет об одноразовом прочтении файла, то File.ReadLines + Split
Если о многоразовом, то File.ReadAllLines + Split => List<string[]>
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574304
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо спасибо большое, теперь мне нужно разбить данные и вывести 2 нужных элемента.
Как мне найти именно нужные 2 и вывести их?

вот пример одной из найденных строчек:

actief\J\HARDWARE\3016\\\1333275\Inkthervulling HP 351XL, 14ml Kleur\\CATRIDGE EXPERT\01\09\2007\\21\21,95\\\\\\-\\\\\\\\\\\0\5\0\0\15\\\\\100506\Cremdalin BVBA (CXP/The refil Store)\\13.6\EUR\1\\-\-\\-\-\-\-\J\J\\\\

Выделил то что нужно распечатать.

Вы уж простите, я не особо знаком с VB да и когда я шел на эту стажировку мне сказали что я буду чинить технику а не писать программы...
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574328
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В байсике не сильны.

Код: c#
1.
2.
3.
4.
5.
6.
var lines = File.ReadAllLines(файл).Select(s => s.Split(@"\", StringSplitOptions.None)).ToList();

var line = lines.where(L => L[7] == @"Inkthervulling HP 351XL, 14ml Kleur").FirstOrDefault();

if (null != line)
  console.writeline(line[7], line[15]);


Как то на глаз и без проверки так
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574345
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мы так вообще сильны только в сборке техники)

не понял вот эту строчку:
var line = lines.where(L => L[7] == @"Inkthervulling HP 351XL, 14ml Kleur").FirstOrDefault();

так как у меня линий +-20 будет и все разные
Но слешей там всегда одинаковое количество, вообще странная база такая, но ничего поделать не могу, базу использовать запретили.
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574358
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c05SepthМы так вообще сильны только в сборке техники)

не понял вот эту строчку:
var line = lines.where(L => L[7] == @"Inkthervulling HP 351XL, 14ml Kleur").FirstOrDefault();

так как у меня линий +-20 будет и все разные
Но слешей там всегда одинаковое количество, вообще странная база такая, но ничего поделать не могу, базу использовать запретили.

чихать на количество линий, если их не многие тысячи

строка 1) считать файл в список, элементом которого является массив строк
строка 2) найти такой элемент, где 7-ой элемент в массиве имеет название "Inkthervulling HP 351XL, 14ml Kleur"
строка 3) если такой элемент найден, выдать на экран 7 и 15 части этого элемента
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574407
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но получается ты определённое название ищешь?
Inkthervulling HP 351XL, 14ml Kleur
Но вторая строка у меня допустим
Inkthervulling HP 352, 25ml Zwart
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574413
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c05SepthНужно по названию продукта провести поиск во всём текстовом файле, найти все продукты(группа 8) со словом "inkthervulling" и вывести на экран полное название и цену(16 группа, перед 16 слэшем), после чего распечатать как прайслист с лого и адресом компании.

where(L => L[7].Contains("inkthervulling"))
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574433
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё спасибо!)
...
Рейтинг: 0 / 0
Поиск и печать данных из .txt нужна помощь
    #38574435
c05Septh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно закрыть тему и всем плюсануть))
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и печать данных из .txt нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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