|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||||||||||||||||
Обращение к массиву Edit10.10.2013, 16:22. Показов 2807. Ответов 22
Метки нет (Все метки)
Вот объявляю массив из Edit:
Внутри функции PlaceElements я могу обращаться к элементам данного массива, например:
0
|
|||||||||||||||||||||
| 10.10.2013, 16:22 | |
|
Ответы с готовыми решениями:
22
Добавление с Edit в Items Combox и после этого в Edit на другую форму Ограничение ввода русских букв в Edit. Всплывающая подсказка над Edit'ом Перенос из одного Edit в другой Edit на разных формах (ошибка) |
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
|
| 10.10.2013, 18:01 | |
|
Массив TEdit *ShiftEdit[3];, т.е. от 0 до 2, а в цикле for (j = 0; j < 4; j++) { обращаемся к элементу ShiftEdit с номером 3. Это вполне может вызвать ошибку.
1
|
|
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||
| 10.10.2013, 18:12 [ТС] | ||
|
Но всё равно проблема сохранилась - именно при нажатии на Button1 программа вылетает с сообщением:
0
|
||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||||||||||||
| 10.10.2013, 19:52 [ТС] | ||||||||||||
|
Сейчас набросал с чистого проекта такое:
Всё хорошо работает. У меня, значит, что-то не так. (Но, вроде, я всё представил, что имеет отношение к моему массиву...) Попробую покопаться... Добавлено через 14 минут Нашёл, в чём причина! В FormCreate после вызова PlaceElements(); у меня идёт LoadData(); - загрузка данных в массив эдитов. Удалил вызов LoadData - всё заработало. Значит, я неправильно пишу функции загрузки и сохранения (при выходе) данных. Вот, покажу как пытался написать:
0
|
||||||||||||
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
|
| 10.10.2013, 20:10 | |
|
В языке C/C++ (я считаю что это один и тот же язык
) компилятор не следит за размерами массива, это право предоставляется разработчику .
0
|
|
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|
| 10.10.2013, 20:16 [ТС] | |
|
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 10.10.2013, 20:17 | |
|
Вас линкер поймает по размеру heap...
0
|
|
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
|
| 10.10.2013, 20:30 | |
|
Ну конечно есть!!! Если мы объявляем массив char A[3], то это значит что мы резервируем 3 байта памяти, и если пытаемся после этого сделать что-то типа A[4]='x', то этот 'x' запишется в область памяти которая зарезервирована под что-то другое, а следовательно нас ждут непредвиденные последствия
.Добавлено через 1 минуту А если размерность массива вообще не писать, то это уже будет не массив .
0
|
|
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||
| 10.10.2013, 20:47 [ТС] | ||
|
(Кстати, в вашем примере, наверное, лучше показать недопустимость использования A[3]='x', чем 4 (массив начинается с 0), то же в чём я ошибся.)
0
|
||
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
||||||
| 10.10.2013, 21:12 | ||||||
|
Всё правильно, индекс A[3] уже нельзя использовать, но компилятор пропустит, равно как и A[4], A[8], A[-1]. Нагрузить компилятор проверкой индексов невозможно. Что он должен делать например в таком случае:
1
|
||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 10.10.2013, 21:16 | ||
|
0
|
||
|
Хочу в Исландию
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
|
|
| 10.10.2013, 22:06 | |
|
А он не ругается... И правильно делает - не могут ведь все циклы быть с постоянными границами
.
0
|
|
|
2 / 2 / 0
Регистрация: 26.08.2013
Сообщений: 14
|
||||||||
| 10.10.2013, 22:50 | ||||||||
|
и кажись так ты Edit целиком не сохранишь Добавлено через 16 минут
0
|
||||||||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||
| 10.10.2013, 23:57 [ТС] | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 26.08.2013
Сообщений: 14
|
||
| 11.10.2013, 07:45 | ||
|
fwrite(ShiftEdit[i]-> Text [1],10, 1, fp) попробуй так
0
|
||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||||||||||||
| 11.10.2013, 15:01 [ТС] | ||||||||||||
|
Вот я попробовал так:
Но если так:
(Раньше на Delphi программировал, таких проблем не было, только недавно стал изучать C++.)
0
|
||||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 11.10.2013, 15:30 | |
|
У fwrite первым параметром идет указатель (адрес) на массив, откуда берутся данные для записи. Со строкой так не проходит; сделайте char[] - и балуйтесь.
0
|
|
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||
| 11.10.2013, 15:44 [ТС] | |||||||
А, не понял, где char[] сделать?
0
|
|||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 11.10.2013, 15:47 | |
|
- ну массив организуйте; вместо s или в дополнение к ней. Копируйте 555 в массив и с массива же выводите.
Может кто лучшую идею подкинет, - со строкой - я тоже интересуюсь... .
1
|
|
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||||||||||||
| 11.10.2013, 17:41 [ТС] | |||||||||||||||||
Добавлено через 14 минут Вот так работает:
Добавлено через 19 минут Вот, если кому интересно, окончательный, рабочий вариант:
Добавлено через 15 минут Вот ещё маленькая непонятка. Чтобы не писать fopen("file.dat"... я хотел ввести строковую константу, но как в Делфи такое не работает: const DataFile="otto.dat"; Хорошо, использую переменную: String DataFile="otto.dat"; // имя файла данных Но компилятор не принимает fp=fopen(DataFile, "rb") Добавлено через 17 минут Блин, русские символы из ShiftEdit[i]->Text не сохраняются! ![]() Добавлено через 7 минут При создании эдитов ShiftEdit[j]->Font->Charset=RUSSIAN_CHARSET; не помогло. Добавлено через 21 минуту Русские буквы сделал! Использовал wchar_t вместо char и записываю/считываю уже по 2 байта вместо одного.
0
|
|||||||||||||||||
| 11.10.2013, 17:41 | |
|
Помогаю со студенческими работами здесь
20
Запись в файл из полей Edit и проверка Edit на пустоту
Обмен значениями между Edit 1 и Edit 2 ТЕКСТ: С Edit'a в масив и обратно в EDIT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|