Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/35: Рейтинг темы: голосов - 35, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 21.05.2012
Сообщений: 6

Загрузка текста в TextBox из ini файла

30.09.2012, 21:10. Показов 6745. Ответов 28

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!
У меня проблема с ini файлами...
Мне нужно чтобы при загрузке формы в компоненте "TextBox1" считывалась информация с C:\файл.ini
Помогите плиз...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2012, 21:10
Ответы с готовыми решениями:

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

Чтение текста из файла в textbox
Проблема вот в чем... есть 6(в реальности их 50) TextBox'ов при выходе из программы, или при нажатии кнопки "Сохранить"...

Замена текста, взятого из файла, в textBox
Всем доброго времени суток. В общем есть form1 на ней textbox1 и textbox 2. Нужно чтобы при попадании текста в текстбокс1 значение...

28
 Аватар для Desh
147 / 147 / 41
Регистрация: 01.12.2009
Сообщений: 275
01.10.2012, 14:20
VB.NET Скопировано
1
2
3
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\файл.ini")
End Sub
1
 Аватар для XIST
1953 / 1055 / 148
Регистрация: 01.10.2009
Сообщений: 3,550
Записей в блоге: 1
01.10.2012, 17:18
Лучший ответ Сообщение было отмечено как решение

Решение

любимые ini-шки
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
 
 
 Public Function ReedIni(ByVal Section As String, ByVal Param As String) As String
        Try
            PrintLog("Reed ini...")
            Dim rc As String = Strings.StrDup(255, vbNullChar)
            Dim x As Integer
            x = GetPrivateProfileString(Section, Param, "", rc, 255, My.Application.Info.DirectoryPath & "\Setup.ini")
            If x <> 0 Then rc = Strings.Left(rc, x)
            ReedIni = rc
            PrintLog("Reed ini...ok")
        Catch ex As Exception
            PrintLog("Reed ini...ERROR " & ex.Message)
        End Try
    End Function
    Public Sub WriteIni(ByVal Section As String, ByVal Obj As String, ByVal Param As String)
        Try
            PrintLog("Write ini...")
            Call WritePrivateProfileString(Section, Param, Obj, My.Application.Info.DirectoryPath & "\Setup.ini")
            PrintLog("Write ini...ok")
        Catch ex As Exception
            PrintLog("Write ini...ERROR " & ex.Message)
        End Try
    End Sub
и далее вызовы а-ля

VB.NET Скопировано
1
ReedIni("секция", "параметр")
п.с. спасибо Памирычу в свое время
5
01.10.2012, 18:13

Не по теме:

Цитата Сообщение от DM_AND Посмотреть сообщение
спасибо Памирычу в свое время
А я смотрю щас в код как баран на новые ворота - уж позабыл все :D

0
 Аватар для XIST
1953 / 1055 / 148
Регистрация: 01.10.2009
Сообщений: 3,550
Записей в блоге: 1
01.10.2012, 21:06
Цитата Сообщение от Памирыч Посмотреть сообщение

Не по теме:


А я смотрю щас в код как баран на новые ворота - уж позабыл все :D

_ _ _ _ _
0
0 / 0 / 0
Регистрация: 21.05.2012
Сообщений: 6
01.10.2012, 21:59  [ТС]
Спасибо

Добавлено через 23 минуты
Хм...
Как на дуб смотрю в vb.net)
Я никак не могу понять почему там не работает константа:

Delphi Скопировано
1
2
mouse_event(mouseeventf_leftdown,0,0,0,0);
mouse_event(mouseeventf_leftup,0,0,0,0);
Как этот код будет выглядеть в vb.net?
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
01.10.2012, 22:39
Rocker, как это к теме относиться?
0
525 / 487 / 98
Регистрация: 25.12.2011
Сообщений: 1,176
01.10.2012, 22:46

Не по теме:

Цитата Сообщение от edward_freedom Посмотреть сообщение
Rocker, как это к теме относиться?
Ну почему бы не ответить человеку).



VB.NET Скопировано
1
2
3
4
5
    Public Const MOUSEEVENTF_LEFTDOWN = &H2
    Public Const MOUSEEVENTF_LEFTUP = &H4
 
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
1
0 / 0 / 0
Регистрация: 21.05.2012
Сообщений: 6
04.10.2012, 16:28  [ТС]
Спасибо)
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 62
06.12.2012, 19:56
DM_AND, Прошу прощения заранее, вставлял код без изменений, а что за команда
Цитата Сообщение от DM_AND Посмотреть сообщение
PrintLog?
на него ругается VB2010
И для присваивания Textbox значения будет ли достаточно кода
VB.NET Скопировано
1
.TextBox3.Text = ReedIni("section", "param")
0
 Аватар для XIST
1953 / 1055 / 148
Регистрация: 01.10.2009
Сообщений: 3,550
Записей в блоге: 1
07.12.2012, 08:04
уберите ее, это моя функция.
VB.NET Скопировано
1
TextBox3.Text = ReedIni("section", "param")
Да, достаточно, только точку уберите в начале...
0
0 / 0 / 0
Регистрация: 28.09.2013
Сообщений: 61
04.01.2014, 19:38
Подскажите пожалуйста, как сделать что бы функция ReedIni не могла вернуть пустоту а заместо нее например string (test)
0
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
04.01.2014, 21:05
Цитата Сообщение от JEY70 Посмотреть сообщение
Подскажите пожалуйста, как сделать что бы функция ReedIni не могла вернуть пустоту а заместо нее например string (test)
Лучше, наверно, дать весь пример.
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
MustInherit Class CustomSettings
    Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal iniSection As String, ByVal iniKey As String, ByVal iniDefault As String, ByVal iniValue As String, ByVal iniBuffer As Integer, ByVal iniFilename As String) As Integer
    Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal iniSection As String, ByVal iniKey As String, ByVal iniValue As String, ByVal iniFilename As String) As Integer
 
    Shared SettingsPath As String = Environment.CurrentDirectory & "\setup.ini"
 
    Private Shared _Text1 As String
    Public Shared Property Text1 As String
        Get
            Return _Text1
        End Get
        Set(ByVal value As String)
            _Text1 = value
        End Set
    End Property
 
    Public Shared Sub Load()
        _Text1 = Read("Section", "Section", "Default")
 
    End Sub
    Public Shared Sub Save()
        Wright("Section", "Section", _Text1)
 
    End Sub
 
    Private Shared Function Read(ByVal iniSection As String, ByVal iniKey As String, ByVal iniDefault As String) As String
        Dim iniBuffer As String = Space(1024)
        Dim iniLength As Integer = GetPrivateProfileString(iniSection, iniKey, iniDefault, iniBuffer, 255, SettingsPath)
        Return iniBuffer.Substring(0, iniLength)
    End Function
    Private Shared Sub Wright(ByVal iniSection As String, ByVal iniKey As String, ByVal iniValue As String)
        WritePrivateProfileString(iniSection, iniKey, iniValue, SettingsPath)
    End Sub
    End Class
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
10.01.2014, 01:25
Цитата Сообщение от DM_AND Посмотреть сообщение
любимые ini-шки
Код Visual Basic .NET
Бррррр... Во-первых, файл будет читаться для каждого параметра заново. Во-вторых, функции даже не объявлены как юникодные. Ну и наконец, а зачем там Try-Catch?

PS: Как раз недавно писал парсинг ini-файла, точнее reg. Вечером выложу код.

Добавлено через 10 часов 22 минуты
Вот код. Только надо из него обработку переносов строк выпилить, чтобы нормальный ini получился. Возможно ещё Trim'ы приписать. В общем, остальное по желанию/необходимости.
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Imports System.IO
Imports System.Text
 
Public Class IniReg
Inherits Dictionary(Of String, Dictionary(Of String, String))
 
Default Public Overloads Property Item(Section As String, Key As String, Optional [Default] As String = Nothing) As String
  Get
    Dim SectionDict As Dictionary(Of String, String), Res As String
    Return If(Me.TryGetValue(Section, SectionDict) AndAlso SectionDict.TryGetValue(Key, Res), Res, [Default])
  End Get
  Set(Value As String)
    Dim SectionDict As Dictionary(Of String, String)
    If Not Me.TryGetValue(Section, SectionDict) Then
      SectionDict = New Dictionary(Of String, String)
      Me(Section) = SectionDict
    End If
    SectionDict(Key) = Value
  End Set
End Property
 
Public Shared Function FromFile(Filename As String) As IniReg
  Dim Res As New IniReg, Section As String = "", Line As String, Key As String, Value As New StringBuilder, Q As Integer, I As Integer, Lines() As String
 
  Lines = File.ReadAllLines(Filename)
  For Q = 0 To Lines.Length - 1
    Line = Lines(Q)
    If Line.Length Then
      If Line(0) = ";"c Then
        Res(Section, Line) = Nothing
      ElseIf Line(0) = "[" Then
        Section = Line.Substring(1, Line.Length - 1 + (Line(Line.Length - 1) = "]"c))
        If Not Res.ContainsKey(Section) Then Res.Add(Section, New Dictionary(Of String, String))
      Else
        I = Line.IndexOf("="c)
        If I = -1 Then
          Res(Section, Line) = Nothing
        Else
          Key = Line.Substring(0, I)
          If Line(Line.Length - 1) <> "\"c Then
            Res(Section, Key) = Line.Substring(I + 1)
          Else
            Value.Append(Line.Substring(I + 1))
            Do
              Value.AppendLine()
              Q += 1
              If Q = Lines.Length Then Exit Do
              Line = Lines(Q)
              Value.Append(Line)
            Loop While Line(Line.Length - 1) = "\"c
            Res(Section, Key) = Value.ToString()
            Value.Clear()
          End If
        End If
      End If
    End If
  Next Q
 
  Return Res
End Function
 
Public Sub Save(Filename As String)
  Dim Res As New List(Of String)
 
  If Me.ContainsKey("") Then
    For Each Kkvp As KeyValuePair(Of String, String) In Me("")
      Res.Add(If(Kkvp.Value IsNot Nothing, Kkvp.Key & "=" & Kkvp.Value, Kkvp.Key))
    Next Kkvp
  End If
 
  For Each Skvp As KeyValuePair(Of String, Dictionary(Of String, String)) In Me
    If Skvp.Key.Length Then
      Res.Add("")
      Res.Add("[" + Skvp.Key + "]")
      For Each Kkvp As KeyValuePair(Of String, String) In Skvp.Value
        Res.Add(If(Kkvp.Value IsNot Nothing, Kkvp.Key & "=" & Kkvp.Value, Kkvp.Key))
      Next Kkvp
    End If
  Next Skvp
 
  File.WriteAllLines(Filename, Res.ToArray())
End Sub
 
End Class
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 9
20.01.2014, 15:26
Памирыч
Здравствуйте, у меня вопрос по поводу темы Загрузка текста в TextBox из ini файла , а именно ответ пользователя DM_AND. Весьма интересное решение, но к сожалению сделано для обслуживания одной инишки. Не подскажете, как его дополнить, чтобы можно было писать и читать заранее заданное количество инишек? Я додумался только до вынесения этой конструкции в отдельные классы для каждой инишки Возможно есть более цивилизованный способ?
С уважением, Fortex
0
Почетный модератор
 Аватар для Памирыч
23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
20.01.2014, 16:29
Fortex, а почему Вы у меня спрашиваете?
Думаю, будет правильнее, если ответит автор кода.

Я Вам лишь посоветую бежать подальше от ini-файлов и реже оглядываться)
1
 Аватар для Petr_S
213 / 230 / 87
Регистрация: 21.04.2013
Сообщений: 404
20.01.2014, 17:36
Цитата Сообщение от Памирыч Посмотреть сообщение
посоветую бежать подальше от ini-файлов и реже оглядываться
А что такого плохого в .ini?
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 9
20.01.2014, 18:32
Дело в том, что речь идет о настройке ини файлов для сервера , и вся прога подгоняется под него)

Добавлено через 31 минуту
Цитата Сообщение от Памирыч Посмотреть сообщение
Fortex, а почему Вы у меня спрашиваете?
DM_AND
п.с. спасибо Памирычу в свое время
Вот почему я спрашиваю
0
835 / 643 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
21.01.2014, 21:49
Fortex, а чем мой код не устраивает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2014, 21:49
Помогаю со студенческими работами здесь

Построчное считывание текста из файла или из TextBox
Необходимо решить такую задачу: как считывать строку (либо из файла txt, либо из вставленного в textBox), построчно. т.е. перебирать строку...

Загрузка текста в ListView: как убрать диалог выбора файла
Есть код: OpenFileDialog1.Filter = &quot;Text files (*.txt)|*.txt&quot; OpenFileDialog1.InitialDirectory =...

Загрузка в компонент RichEdit текста из файла *.ini
Доброго времени суток, очередной раз обращаюсь за подсказкой. Помогите решить проблему. Есть файл Setting5.ini в нем данные. Как мне из...

Загрузка текста из файла в textbox
Привет всем! Господа эксперты подскажите решение очень важной задачки. Смысл такой: на скине изображено окно программы: 1. в левой части...

Загрузка текста из файла, выбранного через openFileDialog, в TextBox
День добрый. Я начинающий программист, осваиваю Visual Studio 2013. Вчера решил написать маленькую программу, тот же блокнот, ради опыта....


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер