Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
1

Аналог TStringList в Visual Basic.NET

26.08.2017, 13:58. Просмотров 1760. Ответов 21
Метки нет (Все метки)

Здравствуйте все! Помогите разобраться мне надо строки в текстовом файле сохранять в виде списка строк ну и соответственно загружать,удалять,искать нужные.

В Delphi для этого пот ходит TStringList а вот в VB.NET вроде есть StringList но че то я не могу в справке разобраться боль но все туманно и кратко описано да и не понял как этот StringLis из файла загружать может кто разъяснит как все таки работать с StringLis в VB.NET или есть другие подходящие классы.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2017, 13:58
Ответы с готовыми решениями:

Visual Basic .Net и Visual Basic 6.0 - В чём разница
В общем возник вопрос: Visual Bisic.Net и Visual Basic - это два разных языка, или же .NET версия...

Visual Basic.Net и Visual Studio 2013 - в чем разница?
Visual Basic.Net и Visual Studio 2013 - в чем разница? Или это одно и тоже, просто называются по...

Visual Basic .NET vs Visual FoxPro 9.0 в рамках задач реляционной модели данных
Очень хочется обсудить следующую тему. Поставлена задача - написать некоторую программу...

Есть ли аналог atexit из С++ в Visual Basic
Есть программа (консольное приложение), которая обрабатывает файлы. В конце делает запись в...

21
ovva
3131 / 2550 / 632
Регистрация: 02.02.2013
Сообщений: 2,481
Записей в блоге: 2
26.08.2017, 14:05 2
Цитата Сообщение от DimkaBel Посмотреть сообщение
надо строки в текстовом файле сохранять в виде списка строк
например
vb.net
1
2
3
4
5
'пишем
 Dim str1() As String = {"aaaaaa", "bbbbb", "ccccc"}
 IO.File.WriteAllLines("c:\test01.txt", str1)
 'читаем
 Dim str2() As String = IO.File.ReadAllLines("c:\test01.txt")
2
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
26.08.2017, 14:55 3
Лучший ответ Сообщение было отмечено DimkaBel как решение

Решение

DimkaBel, аналогом TStringList является List(Of String). Загрузить в него файл можно так:
vb.net
1
2
Dim lines As New List(Of String)
lines.AddRange(File.ReadLines("c:\file.txt"))
2
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 14:38  [ТС] 4
OwenGlendower, Привет а не подскажешь как поиск организовать в
vb.net
1
List(Of String)
0
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
27.08.2017, 14:39 5
DimkaBel, циклом или с помощью FindXYZ методов или через LINQ.
0
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 14:51  [ТС] 6
OwenGlendower, То есть аналога Delphi нет в VB.Net
Delphi
1
TStringList.Find(S,Index)
0
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,731
Записей в блоге: 1
27.08.2017, 15:07 7
DimkaBel, нет, метод
Код
Find
есть, но не по индексу, насколько я понял второй параметр
0
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 15:24  [ТС] 8
XIST, В Delphi
Delphi
1
TStringList.Find(S,Index)
S - Это переменная в которой находиться искомый текст или часть его. А Index - это переменная в которую помещается индекс найденной строки.
0
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
27.08.2017, 15:28 9
Цитата Сообщение от DimkaBel Посмотреть сообщение
То есть аналога Delphi нет в VB.Net
Кто-то говорил что типы из VB.NET должны быть 100% аналогом типов из Delphi?

Аналогии между TStringList и List(Of String) тем не менее можно провести. Нужно просто помнить что метод не обязан называться точно также. Аналогом Find является метод BinarySearch т.к. оба метода работают с уже отсортированной коллекцией.
1
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 15:35  [ТС] 10
XIST, Я не могу понять как этот Find работает с IndexOf разобрался с BinarySearch тоже но они требуют всю строку целиком а мне нужен поиск по её части (скажем по числу)

Добавлено через 5 минут
OwenGlendower, Полностью с вами согласен я и пытаюсь эти Аналогии найти и если кто то мне в этом поможет я буду очень признателен
0
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,731
Записей в блоге: 1
27.08.2017, 15:41 11
DimkaBel, модератор лучший вариатн подсказал, но можно еще нечто такое
vb.net
1
2
Dim a As New List(Of String)
a.FindIndex(AddressOf ' тут например функция режущая строку для поиска как нужно)
0
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
27.08.2017, 15:44 12
Цитата Сообщение от DimkaBel Посмотреть сообщение
мне нужен поиск по её части (скажем по числу)
Покажи конкретный пример строк и что там нужно найти. Набросаю простой пример.
0
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 16:23  [ТС] 13
OwenGlendower, "27.08.2017 - qqqqqqqqqqqqqqqqqqqqqqqqqqqqq" найти первые 10 символов а точней сравнит текущую дату с датой в строке.
0
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
27.08.2017, 16:27 14
DimkaBel, что именно нужно найти то? Дату? Или просто проверить что в строке встречается хотя бы одно число?
0
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 16:28  [ТС] 15
OwenGlendower,
Цитата Сообщение от DimkaBel Посмотреть сообщение
27.08.2017
0
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,731
Записей в блоге: 1
27.08.2017, 16:34 16
DimkaBel, быстрый примитив
vb.net
1
2
3
4
5
6
7
8
 Dim a As New List(Of String)
            a.FindIndex(AddressOf rez10) ' тут например функция режущая строку для поиска как нужно)
 
 
        Function rez10()
            Dim stroka = "27.08.2017 - qqqqqqqqqqqqqqqqqqqqqqqqqqqqq"
            Return stroka.Substring(0, 10)
        End Function
ну а там подпелить параметры добавить и будет то
1
OwenGlendower
Супер-модератор
Эксперт .NET
11568 / 9745 / 4079
Регистрация: 17.03.2014
Сообщений: 19,425
Записей в блоге: 1
Завершенные тесты: 2
27.08.2017, 16:39 17
DimkaBel, все равно не понял точно что тебе нужно. Если ищем есть в строке дата вида dd.mm.yyyy, то:
vb.net
1
2
3
4
5
Dim lines As New List(Of String) From {"27.08.2017 - qqqqqqqqqqqqqqqqqqqqqqqqqqqqq"}
Dim index As Integer = lines.FindIndex(Function(s) Regex.IsMatch(s, "^\d{2}\.\d{2}\.\d{4}"))
If index>=0 Then
    ' Строка найдена
End If
Если строку которая начинается с известной подстроки, то
vb.net
1
2
3
4
5
Dim lines As New List(Of String) From {"27.08.2017 - qqqqqqqqqqqqqqqqqqqqqqqqqqqqq"}
Dim index As Integer = lines.FindIndex(Function(s) s.StartsWith("27.08.2017"))
If index>=0 Then
    ' Строка найдена
End If
Если строка которая содержит известную подстроку в любом месте, то в предыдущем примере меняем StartsWith на Contains
2
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 18:20  [ТС] 18
XIST, OwenGlendower, Ладно спасибо вам огромное мне все это переварить надо если что завтра стукнусь лады ???

Добавлено через 1 час 4 минуты
XIST, НЕ чет не фунциклирует 1.если в функции на писать Return stroka.Substring(0, 10) то у меня выскакивает Приведение строки "27.08.2017" к типу "Boolean" является недопустимым. а если убрать Return то функция отрабатывает как цикл по числу строк и все выдает -1 то есть не находит "27.08.2017".

Добавлено через 25 минут
OwenGlendower, Судя по всему либо я тупой и не догоняю что вы мне пытаетесь объяснить либо так объясняю что вы понять меня не можете, попытаюсь с самого начала.
1. У меня на форме 3 элемента (MonthCalendar,TextBox,Button) в календаре выбираю дату ,в текстовой строке в вожу текст,
кнопка объединяет дату с текстом и добавляет строку в список строк который в свою очередь сохраняется в Файл.txt при следующем запуске программы при создании формы должно 1.Проверка на наличие файла Файл.txt 2. Проверка если что то в файле или нет 3. Если файл найден и в нем есть строки то строковое значение текущей даты ищется в списке строк загруженных из файла (по идеи если текущая дата совпадает с какой нибудь строкой должен выдаваться индекс этой строки) по индексу я уже буду вы водить строку скажем в MsgBox.

Фууууууууууууу ну теперь понятно что я хочу сделать ???
0
XIST
1194 / 910 / 124
Регистрация: 01.10.2009
Сообщений: 2,731
Записей в блоге: 1
27.08.2017, 18:24 19
DimkaBel, а нет, ибо я не прав, тут нужно приводить к
Код
Predicate(Of T)
. ВОт правильно как будет это выглядеть
MSDN

Добавлено через 3 минуты
Цитата Сообщение от DimkaBel Посмотреть сообщение
1. У меня на форме 3 элемента (MonthCalendar,TextBox,Button) в календаре выбираю дату ,в текстовой строке в вожу текст,
кнопка объединяет дату с текстом и добавляет строку в список строк который в свою очередь сохраняется в Файл.txt при следующем запуске программы при создании формы должно 1.Проверка на наличие файла Файл.txt 2. Проверка если что то в файле или нет 3. Если файл найден и в нем есть строки то строковое значение текущей даты ищется в списке строк загруженных из файла (по идеи если текущая дата совпадает с какой нибудь строкой должен выдаваться индекс этой строки) по индексу я уже буду вы водить строку скажем в MsgBox.
Вы изначально выбрали тернистый путь, база, таблица, ни каких текстовиков, чтений строк, забивания памяти, ничего лишнего, одна таблица, один запрос на Contains и всё, рекомендую пересмотреть
0
DimkaBel
3 / 3 / 0
Регистрация: 21.11.2012
Сообщений: 88
27.08.2017, 18:34  [ТС] 20
XIST, Ага я это видел и ничего из этого не понял, вообще это MSDN как то заумн оформлено не для средних умов (как у меня).

Добавлено через 7 минут
XIST, Может вспомните где пример описываемого вами решения можно посмотреть или исходник покапать а?
0
27.08.2017, 18:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2017, 18:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Исходники на Visual Basic .NET
Кто-то читает книжки. Кто-то ищет информацию в Google... А кто-то набирается знаний, разбирая чужие...

Арктангенс в Visual Basic .NET?
Здравствуйте всем! Как? Как его получить? В классе Math его нет......

Литература и ресурсы по Visual Basic .NET
Литература по Visual Basic.NET 1. Виктор Зиборов "Visual Basic 2010 на примерах" Издательство:...

Хорошие учебники по Visual Basic Net
Подскажите пожалуйста хорошие учебники по visual basic net,спасибо


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.