Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 12

Listbox получение данных и их обработка

23.02.2016, 22:44. Показов 1505. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте эксперты.
Не буду говорить, что я уже не первый день бьюсь с проблемой и прочитал немало материала, но ответ я так и не нашел. Прошу помочь мне, пожалуйста.
Есть приложение Windows Form с компонентом listbox2 (lb_dst) в него из другого listbox1(lb_source) помещаются имена файлов с указанием полного пути до них, т.е. в lb_source имеем список файлов какой-то директории, нажимая кнопку добавить, мы добавляем строку из lb_source в lb_dst, строка есть полный путь до имени файла. (пример строки: C:\test\test.md5).

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

Код для вычисления размера файла такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
unsigned int TestForm::MyForm::GetMyFileSize()
{
    unsigned short total, currrent;
    unsigned long filesSize = 0;
    char * filepath;
    total = TestForm::MyForm::lb_dst->Items->Count; //Количество строк(файлов) в listbox(lb_dst)
 
    for (currrent = 0; currrent < total; currrent++)   //Проходим по всем строкам listbox и вычисляем размер каждого файла
    {
//          filepath = MyForm::lb_dst->Items[current]->ToString(); 
        long nFileLen = 0;
        struct _stat st;
        int res = _stat(filepath, &st);
        if (res == 0)
            nFileLen = st.st_size;
        filesSize += nFileLen;
    }
    return filesSize;
}
Собственно вопросы такие:

Первый вопрос:
Когда я обращаюсь к определенной строке MyForm::lb_dst->Items[current]->ToString(), то строка имеет тип System::String^ , но функция для определения размера файла должна принимать значение const char* из-за этого возникает ошибка преобразования типов. Как ее исправить?

Второй вопрос:
Если я указываю значение filepath вручную в виде
C++
1
 filepath = "C:\\test\\test.md5"
, то все работает корректно, размер файла вычисляется, но я использую " " двойной слэш для экранирования.
После преобразования строки с именем файла из MyForm::lb_dst->Items[current]->ToString() в понятное значение для функции _stat, как будет происходить экранирование или может оно не нужно будет?

Спасибо Всем за помощь.

Добавлено через 21 час 48 минут
Добрый день,
Как обычно бывает в таких случаях ))
Когда никто не отвечает, сам находишь ответ на свои вопросы, может это и к лучшему...

Вот оно! мое решение.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
unsigned int TestForm::MyForm::GetMyFileSize( )
{
    unsigned short total, cur;
    unsigned int filesSize = 0;
    total = MyForm::lb_dst->Items->Count;
    for (cur = 0; cur < total; cur++)
    {
        FileInfo^ fi = gcnew FileInfo(MyForm::lb_dst->Items[cur]->ToString());
        fi->Length;
        filesSize += fi->Length;
    }
    return filesSize;
 
}
Вот только пока не совсем понял как отчистить из памяти объект fi ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2016, 22:44
Ответы с готовыми решениями:

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

Обработка и получение данных из многомерного массива
Всем привет! Что мы имеем: 2 таблицы в базе данных:groups и emails Запросом получаем всех пользователей: $sql=&quot;SELECT...

Обработка и получение данных подчиненной формы
Всем привет. Проблема в процессе обработки событий для подчиненной формы. Все работало отлично, пока не поставил группировку данных....

2
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.02.2016, 23:28
Цитата Сообщение от Alexander_I Посмотреть сообщение
Вот только пока не совсем понял как отчистить из памяти объект fi ?
никак. Сборщик мусора сам все освободит как только посчитает нужным освободить память.
0
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 12
23.02.2016, 23:41  [ТС]
Это прекрасно! Спасибо за ответ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2016, 23:41
Помогаю со студенческими работами здесь

Получение данных Excel-ем из SQL и последующая обработка
Получение данных Excelем из SQL и послед. обработка. Как получить из SQL данные и потом с ними работать, построчно.

Получение и обработка данных из файла - артефактит производительность
В общем вопрос больше теоретический. У меня есть код который получает бинарные данные из файла обрабатывает и предоставляет в виде списка...

Получение и обработка данных из большой таблицы (200 млн строк)
У меня есть большая таблица MySQL с порядка 200 млн записей. Я делаю такой запрос, используя JDBC: public List&lt;Pair&lt;Long,...

получение данных из textarea, их обработка и занесение в другой textarea
Добрый день! Нужна помощь по проблеме Есть html страница &lt;html&gt; &lt;body&gt; &lt;form action=&quot;index.php&quot;...

Перенос данных из ListBox формы1 в ListBox формы 2
как перенести заполненный листбокс из одной формы в новый лист бокс новой формы?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru