| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Почему возникает ошибка при чтении числа из Texta формы?

Почему возникает ошибка при чтении числа из Texta формы?

Ответ
Поиск в этой теме
Непрочитано 02.08.2022, 12:00 #1
Почему возникает ошибка при чтении числа из Texta формы?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 907

Почему в следующем коде:

Код:
[Выделить все]
ЧислоУзлов = CLng(frm.Text_ЧислоУзлов.Text)
возникает ошибка при чтении числа из Texta формы?
Переменная frm объявлена в начале процедуры:

Код:
[Выделить все]
Public Sub ЗаписатьВводныеДанные(frm As Object, SvFileDlg As SaveFileDialog)
В общем я всю форму передаю в процедуру как переменную Object и читаю из её окон данные для записи в файл.
Так что нельзя делать? А как тогда надо организовывать запись данных с формы в файл?
Просмотров: 1754
 
Непрочитано 02.08.2022, 12:19
1 | #2
trir


 
Регистрация: 18.12.2010
Сообщений: 4,819


https://ru.wikipedia.org/wiki/Model-View-ViewModel
trir вне форума  
 
Непрочитано 02.08.2022, 12:38
1 | #3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,859


МишаИнженер, ты уверен, что вопрос в нужном разделе? Это раз.
Второе. Проверяй типы данных.
Третье. trir дал абсолютно верное направление. Не связывай представление и модель напрямую - потом вспотеешь разгребать.
И наконец перестань давать русские имена переменным и полям диалогов!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.08.2022, 12:50
1 | #4
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,119


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Не связывай представление и модель напрямую - потом вспотеешь разгребать.
Сказал бы немного иначе - разделяй хранение, обработку и взаимодействие с пользователем (и программой, если это надстройка). Там явно не WPF, чтобы паттерн MVVM задействовать)

Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
В общем я всю форму передаю в процедуру как переменную Object и читаю из её окон данные для записи в файл.
если это все-таки VBA, то пока не выгрузили форму в явном виде через Unload - можно спокойно оттуда данные читать.
Сергей812 вне форума  
 
Непрочитано 02.08.2022, 13:05
1 | #5
trir


 
Регистрация: 18.12.2010
Сообщений: 4,819


Цитата:
Там явно не WPF, чтобы паттерн MVVM задействовать
Его можно и с WinForm использовать
trir вне форума  
 
Непрочитано 02.08.2022, 13:27
1 | #6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,119


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
Его можно и с WinForm использовать
серьезно думаете, что если у человека проблемы с написанием простейшей задачи по сохранению (с валидацией) значений полей формы ввода в файл - то ему поможет MVVM?)
Сергей812 вне форума  
 
Автор темы   Непрочитано 02.08.2022, 14:15
#7
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 907


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
если это все-таки VBA, то пока не выгрузили форму в явном виде через Unload - можно спокойно оттуда данные читать.
Это Visual Studio -> Visual Basic
Не хотят читаться данные из объектной переменной (внутри отдельной функции). В описании ошибки пишет что нет такого метода.
Пришлось прочитать все данные в глобальные переменные до запуска функции записи в файл и только после этого запустить функцию для записи этих данных в файл.
В VBA для этого можно было использовать переменную типа Variant. В VS читал что можно Object. Но Object перестал работать. Пришлось поменять подход.
Спасибо за ответы!
МишаИнженер вне форума  
 
Непрочитано 02.08.2022, 14:29
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 38,859


Может, потому что в VB.NET отсутствует CLng, а есть нечто типа Long.TryParse / Long.Parse? Ну на крайний случай - Convert.ToLong.
P.S. На VB.NET не пишу
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.08.2022, 14:54
#9
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,531


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Может, потому что в VB.NET отсутствует CLng, а есть нечто типа Long.TryParse / Long.Parse?
Там есть и то и другое, наследство. (https://docs.microsoft.com/ru-ru/dot...sion-functions)
Boxa вне форума  
 
Непрочитано 02.08.2022, 15:20
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 10,119


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
Не хотят читаться данные из объектной переменной (внутри отдельной функции). В описании ошибки пишет что нет такого метода.
имхо, данные должны инкапсулироваться внутри отдельного класса. Внутри же класса методы записи и чтения из файла с указанным полным именем. И свойства, содержащие значения требуемых переменных. А уже с этим классом делай что хочешь - передавай по ссылке, используй требуемые из него значения по отдельности. Можно и методы валидации из текстовых полей туда же поместить. И если будет несколько ссылок на этот класс (точнее на объект на основе этого класса) в программе - в любом месте программы автоматически получаешь актуальные данные при необходимости. А затраты памяти при этом уменьшаются - фактический экземпляр класса то один по всем связанным ссылкам.

В VBA с классами было все очень грустно (начиная с отсутствия конструкторов с параметрами), в VB.NET гораздо больше возможностей.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Почему возникает ошибка при чтении числа из Texta формы?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Геометрически изменяемая система (SCAD) MaximZ SCAD 514 06.07.2022 17:07
Ошибка при чтении DXF (Избавление от учебной версии) Alexander88 AutoCAD 10 30.09.2014 15:36
Почему возникает момент в шарнирной опоре?? Anuccia Лира / Лира-САПР 30 13.09.2012 13:33
Почему в елементарной балке от поперечных внешних усилий возникает внутреннее продольное в зонах растяжения и сжатия? sv1 Конструкции зданий и сооружений 44 31.08.2012 22:37
Почему возникает большая разница между усилиями в верхнем и нижним поясах фермы sanek88 Расчетные программы 2 13.01.2012 14:30