Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648

Добавить в ресурсы массив строк и связать его с массивом строк формы

18.11.2018, 22:35. Показов 2144. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть начальный список из 100 SmallString-строк, содержащих пробелы
и массив строк String s[100];
Всего один раз при первой загрузке этот массив инициализируется таким образом:
C++
1
2
3
4
5
s[0] = "asdsf fghhj"; 
s[1] = "lll irtyu ttt";
s[2] = "a hhhhhhhh";
//..
s[99] = "asd kkkkkkkkkkkk";
Получается довольно громоздкая "колбаса" мешающая работе с проектом. Только и знаешь, что крутишь колёсико мыши.
Как забить строки в ресурсы и потом в цикле ими воспользоваться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.11.2018, 22:35
Ответы с готовыми решениями:

Имеется текстовый файл, содержащий 20 строк. Переписать каждую из его строк в массив в том же порядке
имеется текстовый файл, содержащий 20 строк. Переписать каждую из его строк в массив в том же порядке. Сможете помочь с кодом? Заранее...

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

Работа с массивом строк. Подсчет строк определенного содержания
Сейчас выглядит это так: listBox2.Items.Clear(); listBox1.Items.Clear(); String filename =...

9
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.11.2018, 23:42
Цитата Сообщение от jkrnd Посмотреть сообщение
Как забить строки в ресурсы и потом в цикле ими воспользоваться.
Зачем же в цикле...
C++
1
2
3
4
5
6
7
8
1  RT_STRINGS
{
  "unit11 unit21 unit31 unit41 unit51\n"
  "unit12 unit22 unit32 unit42 unit52\n"
  "unit13 unit23 unit33 unit43 unit53\n"
  "unit14 unit24 unit34 unit44 unit54\n"
  "unit15 unit25 unit35 unit45 unit55\0"
}
- это в rc-файле.
C++
1
     Memo1->Lines->LoadFromStream(new TResourceStream(0,1,"RT_STRINGS"));
- это в программе.

Добавлено через 4 минуты
П.С. StringList в данном случае удобней использовать, чем массив строк.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
18.11.2018, 23:48  [ТС]
nick42, rc-файл это обычный текстовый файл? А какое у него имя? нужно ли и как включать его в проект?
У меня массив строк. Получается что я должен сначала создать StringList - переменную, проинициализировать её LoadFromStream и потом перенести содержимое StringList в элементы моего строкового массива?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.11.2018, 23:57
jkrnd, да, текстовый файл. Можете записать как project1.rc с единственным этим списком, а затем добавить к проекту - Project-Add to Project.
Можете в цикле присваивать s[i] = StringList->Strings[i]; а можете сразу работать со списком (вместо s[x] использовать StringList->Strings[x]. Как заполнить StringList при старте показано на примере Memo.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
19.11.2018, 00:57  [ТС]
nick42, не выходит ничего, может посмотрите проект, что не так.
Вложения
Тип файла: rar Ver1.0.rar (4.9 Кб, 7 просмотров)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.11.2018, 01:33
Не знаю, как вы добавляли к проекту. Нужен не #include "Project1.rc", а такая строчка в Project.cpp__
USERC("project1.rc"); (после UseForm(...)). И файл Project1.res лучше удалить перед компиляцией.
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
19.11.2018, 01:52  [ТС]
nick42, добавил вручную
C++
1
2
USEFORM("Unit1.cpp", Form1);
USERC("project1.rc");
через "Project-Add to Project" ничего не происходит.
Убрал строку #include "Project1.rc", удалил Project1.res (он пересоздался при запуске).
Ничего не выходит. Acces Violation из-за строки:
C++
1
Memo1->Lines->LoadFromStream(new TResourceStream(0,1,"RT_STRINGS"));
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.11.2018, 02:09
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

Ну, вот вам проект в BCB5. У меня все работает.
Вложения
Тип файла: zip 60.ZIP (3.9 Кб, 7 просмотров)
1
 Аватар для jkrnd
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
19.11.2018, 13:43  [ТС]
nick42, представленный вами в примере 60.zip rc-файл создавался вручную в текстовом редакторе? И иконки тоже? Если можно, киньте ссылку где обо этих всех манипуляциях с ресурсами доступно растолковывается.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,904
Записей в блоге: 12
19.11.2018, 14:08
Лучший ответ Сообщение было отмечено gunslinger как решение

Решение

jkrnd, у Влада посмотри, он там довольно хорошо описывает работу с ресурсами (да он вообще все хорошо описывает, одно его описание OLE чего только стоит...)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2018, 14:08
Помогаю со студенческими работами здесь

Определить номера строк матрицы A[N,K], совпадающие с массивом d[k]. Если таких строк нет, выдать соответствующее сообщение
Определить номера строк матрицы A, совпадающие с массивом d. Если таких строк нет, выдать соответствующее сообщение.

Массив Обджектов инициализировать массивом строк
Я понимаю, что занимаюсь ерундой. Но насколько я понимаю. Object в java супер тип для всех непримитивных типов. Посредством него...

Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение
Неправильно определяет номера строк, либо вообще определяет строки не совпадающие с D. Не могу найти ошибку, прошу помочь. Вот код: ...

Добавить к файлу несколько строк и вывести его содержимое на экран
В чем может быть ошибка? STK segment para stack 'stack' db 200 dup(?) STK ends data segment para 'data' stdout equ...

При клики в BaseAdapter меняется массив строк, как пересоздать ListView с новым массивом?
Здравствуйте! Имеется класс: package ru.contedevel.mathworker; import java.util.ArrayList; import...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru