Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Переменная цикла и UInt64

Ответить
Настройки темы
Delphi - Переменная цикла и UInt64

Пользователь


Сообщения: 108
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Типа Cardinal уже не хватает для переменной цикла, даже Int64 маловат будет, к тому же у меня не может быть отрицательного значения, поэтому лучше всего будет использование UInt64, но проблема в том, что и Int64 и UInt64 не являются ordinal типом, что несоответствует требованиям к переменной цикла. Городить длинную арифметику для сотен случаев не очень удобно, к тому же это лишнее процессорное время, а задача не такая легкая, чтобы на это тратить время.

Отправлено: 05:57, 09-02-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


novashdima, может расскажите изначальную задачу? Ну так, шутки ради, а то с "после пятницы" экстрасенсорика хромает.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 10:03, 09-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


novashdima, присоединяюсь к вопросу lxa85. Хотелось бы узнать для каких целей такие значения счётчика?

P.S. Помнится мне один преподаватель рассказывал, что есть сторонние библиотеки (на С), в которых реализована арифметика и соответственно процедуры создания/хранения больших чисел. Может и на Delphi подобные писали. Поищите.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 10:47, 09-02-2013 | #3


Вредитель


Сообщения: 460
Благодарности: 126

Профиль | Отправить PM | Цитировать


Попробуйте цикл while или repeat..until. В большинстве случаев ими можно заменить for.

-------
Все сказаное является только моим личным мнением.


Отправлено: 12:32, 09-02-2013 | #4


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


В конце концов можно взять наше огромное число, взять максимум Int64, поделить и сделать 2 цикла один-в-одном и считать что нам нужно. Никакой сложной арифметики.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:40, 09-02-2013 | #5


Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
P.S. Помнится мне один преподаватель рассказывал, что есть сторонние библиотеки (на С), в которых реализована арифметика и соответственно процедуры создания/хранения больших чисел. Может и на Delphi подобные писали. Поищите. »
Вы имеете в виду стандартная длинная арифметика, такое я сам реализовывал много раз.

Цитата DedAlex:
Попробуйте цикл while или repeat..until. В большинстве случаев ими можно заменить for. »
А циклу while точно не нужна порядковая?

Цитата lxa85:
может расскажите изначальную задачу? »
Все довольно банально, загружаю для обработки файл, один из параметров файла - размер, для этого параметра используется Cardinal, если попробовать загрузить файл >4294967295 байт, то есть 4 Гб, то будет печально.

Отправлено: 16:46, 09-02-2013 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 995

Профиль | Сайт | Отправить PM | Цитировать


Цитата novashdima:
А циклу while точно не нужна порядковая? »
Точно. Цикл While работает по логическому условию, а не по перечислению.
Посмотрите, наверняка существуют функции возвращающие размер файла. В крайнем случае сделайте 2 функции работы с длинной файла, до 4Гб и более 4Гб с использование длинной арифметики. Ну или разбейте на 2-3 переменные, как подсказывает Delirium. Так ли нужна унификация функции, если она крайне негативно скажется на производительности программы?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 18:46, 09-02-2013 | #7


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата novashdima:
загружаю для обработки файл »
Что за обработка такая, что нужно пробегать циклом столько раз, каков размер файла?

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 18:51, 09-02-2013 | #8


Пользователь


Сообщения: 108
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата lxa85:
Точно. Цикл While работает по логическому условию, а не по перечислению. »
Хорошо, попробую переправить весь код на while

Цитата LilLoco:
Что за обработка такая, что нужно пробегать циклом столько раз, каков размер файла? »
Я не пробегаюсь по файлу столько раз, каков размер файла, я считываю по байтам.

Отправлено: 19:45, 09-02-2013 | #9


Аватара для cookie_monster

Новый участник


Сообщения: 41
Благодарности: 9

Профиль | Отправить PM | Цитировать


Цитата novashdima:
Вы имеете в виду стандартная длинная арифметика, такое я сам реализовывал много раз. »
Что-то не верю данному утверждению, в соседней теме не можете написать выход в обработчике. А здесь рассказываете о реализации сторонних арифметических функций.

Отправлено: 23:21, 09-02-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Переменная цикла и UInt64

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - лишний проход цикла kolya17 Скриптовые языки администрирования Windows 1 05-10-2011 21:07
CMD/BAT - переменная durexx Скриптовые языки администрирования Windows 1 27-08-2011 10:18
CMD/BAT - [решено] Два файла - как одна переменная, переменная - как параметр taravasya Скриптовые языки администрирования Windows 6 16-02-2010 04:49
выбор из цикла slaine Вебмастеру 10 25-08-2005 12:36
Основы C++ | Раскрытие цикла while (s--) { ... }; Skrip Программирование и базы данных 3 20-08-2005 20:35




 
Переход