Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
99 / 99 / 3
Регистрация: 01.12.2011
Сообщений: 94

Прочитать текст из файла в переменную

06.02.2012, 12:22. Показов 2624. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите решить ошибку в моей программе, которая сохранять параметры сохраняет, а открывать не открывает. Скачайте исходный код, в коментариях программы написано где ошибка. Не знаю, правильно назвал тему или нет, переменуйте, если что. Заранеее благодарен!!!
Вложения
Тип файла: rar WindowsApplication1.rar (1.75 Мб, 12 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2012, 12:22
Ответы с готовыми решениями:

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

Из файла прочитать текст и в этом тексте заменить все пробелы на _ и записать исправленный текст обратно
задача написать программу на assembler, под dos Нужно из файла прочитать текст и в этом тексте заменить все пробелы на _ , и записать...

Прочитать текст из файла, затем удалить из текста все буквы вашего имени и записать текст в новый файл
Создать Windows – приложение, в котором производите запись считывание текста из файла, затем удалите из текста все буквы вашего имени и...

5
99 / 99 / 3
Регистрация: 01.12.2011
Сообщений: 94
06.02.2012, 13:44  [ТС]
библиотеку \bin\Debug\MovingLibrary.dll переместите в католог с решением, чтобы всё открывалось нормально

Добавлено через 1 час 10 минут
кто-нибудь поможет?
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2012, 15:36
Цитата Сообщение от вадим2 Посмотреть сообщение
кто-нибудь поможет
вообще, проект выкладывается в крайнем случае, причем вероятность помощи падает в разы по 2 простым причинам:
1) Лень ковыряться в чужих исходниках
2) Не у каждого студия под рукой, и фреймворк нужной версии.

Исходя из всего вышеизложенного, задачу нужно моделировать на простом примере, примитивном, и касающегося конкретно данного вопроса.
Полученный результат использовать в глобальном проекте.
0
99 / 99 / 3
Регистрация: 01.12.2011
Сообщений: 94
06.02.2012, 16:20  [ТС]
Боле подробно, вот вырезка с моей проблемой:
в проекте есть переменные:
VB.NET
1
2
3
4
5
6
7
8
9
 Public Кол_надписей(10, 10) As Integer
 Public текст_надписи(10, 10) As String
 Public цвет_фона_надписи(10, 10) As Color
 Public цвет_текста_надписи(10, 10) As Color
 Public шрифт_надписи(10, 10) As Font
 Public кордината_x(10, 10) As Integer
 Public кордината_y(10, 10) As Integer
 Public размер_width(10, 10) As Integer
 Public размер_heigth(10, 10) As Integer
есть файл, или несколько с таким содержанием:
Microsoft Sans Serif; 8,25pt
-16777216
-1286
текст надписи
97
116
386
140

вот этот файл(ы) считывается и записывается значения в переменные указанные выше следующим кодом:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 Dim путь_надписей = My.Application.Info.DirectoryPath & "\label\"
        For i = 1 To 10
            For i2 = 0 To 10
                Dim fileExists1 As Boolean
                fileExists1 = My.Computer.FileSystem.FileExists(путь_надписей & i & "." & i2)
                If fileExists1 = True Then
                    Кол_надписей(i, i2) = "1"
                    Dim sr5 As StreamReader
                    sr5 = File.OpenText(путь_надписей & i & "." & i2)
                    Dim converter As System.ComponentModel.TypeConverter = System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
                    шрифт_надписи(i, i2) = CType(converter.ConvertFromString(sr5.ReadLine.ToString), Font)
                    цвет_текста_надписи(i, i2) = Color.FromArgb(sr5.ReadLine)
                    цвет_фона_надписи(i, i2) = Color.FromArgb(sr5.ReadLine)
                    текст_надписи(i, i2) = sr5.ReadLine
                    кордината_x(i, i2) = sr5.ReadLine
                    кордината_y(i, i2) = sr5.ReadLine
                    размер_width(i, i2) = sr5.ReadLine
                    размер_heigth(i, i2) = sr5.ReadLine
                    sr5.Close()
                End If
            Next
        Next

Добавлено через 11 минут
есть в проекте функции:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'преобразовывает шрифт в строку
Function в_строку(ByVal шрифт As Font) As String
        Try
            Dim converter As System.ComponentModel.TypeConverter = _
            System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
            Dim текстовая_строка_шрифта = converter.ConvertToString(шрифт)
            Return текстовая_строка_шрифта
        Catch
            MsgBox("ошибка: " & Err.Description, MsgBoxStyle.Critical, "")
            Return 0
        End Try
    End Function
    'ну а эта на оборот из шрифта в строку
    Function в_шрифт(ByVal текст As String) As Font
        Dim converter As System.ComponentModel.TypeConverter = _
    System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
        Dim font1 As Font = _
              CType(converter.ConvertFromString(текст), Font)
        Return font1
 End Function
создаётся массив надписей при загрузке:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public текстовая_надпись(9) As Label
Dim b As Integer = 135
        For i = 0 To 9
            текстовая_надпись(i) = New Label
            текстовая_надпись(i).Size = New Size(100, 20)
            текстовая_надпись(i).BackColor = Color.Snow
            текстовая_надпись(i).Text = "надпись " & i + 1
            b = b + 27
            текстовая_надпись(i).AutoSize = False
            текстовая_надпись(i).Location = New Point(70, b)
            текстовая_надпись(i).Visible = False
            Me.Controls.Add(текстовая_надпись(i))
next
прочитанные результаты показываются в массиве надписей таким образом(в листбоксе номер вкладки(1-10)):
VB.NET
1
2
3
4
5
6
7
8
9
10
11
For i = 0 To 9
            If Кол_надписей(ListBox1.Text, i) = "1" Then
                текстовая_надпись(i).Text = текст_надписи(ListBox1.Text, i)
                текстовая_надпись(i).BackColor = цвет_фона_надписи(ListBox1.Text, i)
                текстовая_надпись(i).ForeColor = цвет_текста_надписи(ListBox1.Text, i)
                текстовая_надпись(i).Font = шрифт_надписи(ListBox1.Text, i)
                текстовая_надпись(i).Location = New System.Drawing.Point(кордината_x(ListBox1.Text, i), кордината_y(ListBox1.Text, i))
                текстовая_надпись(i).Size = New System.Drawing.Size(размер_width(ListBox1.Text, i), размер_heigth(ListBox1.Text, i))
                текстовая_надпись(i).Visible = True
end if
next
но вот в чём моя проблема, получается так, что параметры считываемые программой надписи не присваюваются. а вот почему, не пойму.
теперь пожалуйста помогите!
0
Почетный модератор
 Аватар для Памирыч
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
06.02.2012, 17:09
вадим2, понятнее не стало, ясно одно, что здесь назревает нехилый велосипед.
Программа должна сохранять тексты меток, цвета и прочее? А потом считывать?
Файл должен быть обычный текстовый, с возможностью нормального чтения и редактирования через блокнот или без разницы?

Добавлено через 14 минут
Я бы сделал так:
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
    <System.Serializable()> Structure Test
        Dim LblTxt As String
        Dim Col As Color
        Dim Pos As Point
        Dim Fnt As Font
    End Structure
    Dim Tst As New Test
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        With Tst
            .Col = Me.BackColor
            .Fnt = Me.Font
            .LblTxt = Label1.Text
            .Pos = Me.Location
        End With
        Dim formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        Using stream As IO.Stream = IO.File.Create("123.bin")
            formatter.Serialize(stream, Tst)
        End Using
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If IO.File.Exists("123.bin") = False Then Exit Sub
        Dim formatter As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
        Using stream As IO.Stream = IO.File.Open("123.bin", IO.FileMode.Open)
            Tst = formatter.Deserialize(stream)
        End Using
        With Tst
            Me.BackColor = .Col
            Me.Font = .Fnt
            Label1.Text = .LblTxt
            Me.Location = New Point(.Pos)
        End With
    End Sub
Создали сериализуемую структуру.
В ней 4 свойства - текст надписи, цвет фона формы, шрифт формы и положение формы.

Все это пишется и читается, и не нужно изобретать никаких конвертеров шрифтов и цветов.
1
99 / 99 / 3
Регистрация: 01.12.2011
Сообщений: 94
06.02.2012, 22:02  [ТС]
смотрите: есть файлы в папке 1.0 , 1.2 , 1.3, или 2.4 и т.д
Программа при загрузке должна в переменные занести значения при помощи:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim путь_надписей = My.Application.Info.DirectoryPath & "\label\"
        For i = 1 To 10
            For i2 = 0 To 10
                Dim fileExists1 As Boolean
                fileExists1 = My.Computer.FileSystem.FileExists(путь_надписей & i & "." & i2)
                If fileExists1 = True Then
                    Кол_надписей(i, i2) = "1"
                    Dim sr5 As StreamReader
                    sr5 = File.OpenText(путь_надписей & i & "." & i2)
                    Dim converter As System.ComponentModel.TypeConverter = System.ComponentModel.TypeDescriptor.GetConverter(GetType(Font))
                    шрифт_надписи(i, i2) = CType(converter.ConvertFromString(sr5.ReadLine.ToString), Font)
                    цвет_текста_надписи(i, i2) = Color.FromArgb(sr5.ReadLine)
                    цвет_фона_надписи(i, i2) = Color.FromArgb(sr5.ReadLine)
                    текст_надписи(i, i2) = sr5.ReadLine
                    кордината_x(i, i2) = sr5.ReadLine
                    кордината_y(i, i2) = sr5.ReadLine
                    размер_width(i, i2) = sr5.ReadLine
                    размер_heigth(i, i2) = sr5.ReadLine
                    sr5.Close()
                End If
            Next
        Next
после в листбоксе(значения в нём от 1 до 10) пользователь выбирает допустим 2
и тогда должны появится надписи в определённом количестве с определёнными параметрами при помощи этого:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
For i = 0 To 9
            If Кол_надписей(ListBox1.Text, i) = "1" Then
                текстовая_надпись(i).Text = текст_надписи(ListBox1.Text, i)
                текстовая_надпись(i).BackColor = цвет_фона_надписи(ListBox1.Text, i)
                текстовая_надпись(i).ForeColor = цвет_текста_надписи(ListBox1.Text, i)
                текстовая_надпись(i).Font = шрифт_надписи(ListBox1.Text, i)
                текстовая_надпись(i).Location = New System.Drawing.Point(кордината_x(ListBox1.Text, i), кордината_y(ListBox1.Text, i))
                текстовая_надпись(i).Size = New System.Drawing.Size(размер_width(ListBox1.Text, i), размер_heigth(ListBox1.Text, i))
                текстовая_надпись(i).Visible = True
end if
next
однако те, параметры, которые загрузить должна была программав переменные, не присваиваются этим надписям, вот я и не помойму где моя ошибка, во время открытия файлов, или во время присвоения значения надписям этих параметров, или там и там ошибка вообще.

Добавлено через 4 часа 48 минут
Спасибо, Памирыч , ошибка оказалась в другом месте программы, ну и спасибо за код, в будущем буду использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.02.2012, 22:02
Помогаю со студенческими работами здесь

Прочитать определённую строку файла и поместить её в переменную
Всем привет! Необходимо прочитать определённую строку файла ,и поместить эту строку в переменную . Например файл 1.txt: Иван 1996 ...

Прочитать данные из файла в переменную после его обновления
public DateTime LastWriteTime- как использовать на Windows Form ? String inf = File.ReadAllText(@&quot;C:\123.doc&quot;);

Прочитать/Пропарсить значения из Xml файла и записать в переменную
Если в кратце, то мне нужно получить все значения и контейнера Message, а как сделать это в C# хз Подскажите кодик для этого плз. ...

Как прочитать в переменную все содержимое текстового файла
Доброго времени суток уважаемые форумчане. У меня возникла проблема, не могу считать файл целиком в переменную. Решил запустить массив...

Как прочитать строку с пробелами из файла в одну переменную?
есть текстовый файл, в нем 3 строки как прочитать 1ую строку(она с пробелами) в 1ну переменную пример: asdfasdq asdq 4 1 2 3 4 ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru