Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Хранение строки в памяти   Найти похожие ветки 

 
dr Tr0jan ©   (2005-09-01 14:33) [0]

Пишу что-то вроде архиватора. И при шифрования файла необходимо хранить в памяти строку (закодированный файл) не больше 10 мегабайт.
Как удобнее это реализовать.


 
Rouse_ ©   (2005-09-01 14:44) [1]

Так и хранить, в виде строки...


 
Юрий Зотов ©   (2005-09-01 14:45) [2]

Возможные варианты:

string (если не встречаются символы #0)
array of char (если не встречаются символы #0)
array of byte (допускает любые символы)
TMemoryStream (допускает любые символы)

А в чем проблема-то?


 
Alexander Panov ©   (2005-09-01 14:49) [3]

Юрий Зотов ©   (01.09.05 14:45) [2]
string (если не встречаются символы #0)


Зачем ограничение? String~AnsiString


 
Юрий Зотов ©   (2005-09-01 14:54) [4]

> Alexander Panov ©   (01.09.05 14:49) [3]

Для простоты. И для гарантии от возможных глюков при возможной работе со строкой, как с PChar.


 
dr Tr0jan ©   (2005-09-01 15:03) [5]

> string (если не встречаются символы #0)
А ограничение на длину? Мне в приницпе пойдет, у меня там base64 строка.


 
Иксик ©   (2005-09-01 15:05) [6]


> А ограничение на длину?


Имхо, сколько память позволяет...


 
Юрий Зотов ©   (2005-09-01 15:06) [7]

> dr Tr0jan ©   (01.09.05 15:03) [5]

> А ограничение на длину?

Почти 2 гигабайта. Устроит?
:о)


 
Иксик ©   (2005-09-01 15:07) [8]


> Иксик ©   (01.09.05 15:05) [6]

Виртуальная :)


 
dr Tr0jan ©   (2005-09-01 15:08) [9]

Удалено модератором


 
ПЛОВ ©   (2005-09-01 15:25) [10]


> Виртуальная :)

Тоесть HDD :)


 
Иксик ©   (2005-09-01 15:28) [11]


> ПЛОВ ©   (01.09.05 15:25) [10]

Сколько программе твоей выделяется? :)

Подсказка, см.
> Юрий Зотов ©   (01.09.05 15:06) [7]

:)


 
begin...end ©   (2005-09-01 15:35) [12]

> Иксик ©   (01.09.05 15:28) [11]

> Сколько программе твоей выделяется?

Программе выделяется 4 ГБ (для 32-разрядных процессов). Эти размеры не равны.


 
Игорь Шевченко ©   (2005-09-01 15:42) [13]

begin...end ©   (01.09.05 15:35) [12]


> Программе выделяется 4 ГБ (для 32-разрядных процессов).
>


Но доступ возможен только к двум. В редких случаях - к трем.


 
ПЛОВ ©   (2005-09-01 15:44) [14]

Удалено модератором


 
begin...end ©   (2005-09-01 15:49) [15]

> Игорь Шевченко ©   (01.09.05 15:42) [13]

Я в курсе. Рихтера читал.


 
Иксик ©   (2005-09-01 15:51) [16]


> begin...end ©   (01.09.05 15:35) [12]

Ну ды, дык и я ну эта, вообщем 2 гига для string. :)

P.S. Отупеешь тут за год на helpdesk"e.


 
Игорь Шевченко ©   (2005-09-01 15:53) [17]

Иксик ©   (01.09.05 15:51) [16]

У тебя при все желании не получится работать со строкой такого размера. Насколько я знаю, Delphi не в состоянии скомпилировать приложение, работающее с 3-мя гигабайтами пользовательского адресного пространства.


 
Иксик ©   (2005-09-01 15:58) [18]


> Игорь Шевченко ©   (01.09.05 15:53) [17]

Ясно. Честно говоря я не пробовал такие большие, просто в справке, если не ошибаюсь, было про 2Гб, вот я и того.


 
Kerk ©   (2005-09-01 18:09) [19]

Игорь Шевченко ©   (01.09.05 15:53) [17]
Насколько я знаю, Delphi не в состоянии скомпилировать приложение, работающее с 3-мя гигабайтами пользовательского адресного пространства.


Ну так мы флажок в PE-хидере руками поправим :)


 
Игорь Шевченко ©   (2005-09-01 18:11) [20]

Kerk ©   (01.09.05 18:09) [19]


> Ну так мы флажок в PE-хидере руками поправим :)


И что ?


 
Kerk ©   (2005-09-01 18:12) [21]

Игорь Шевченко ©   (01.09.05 18:11) [20]
И что ?


И будет 3 гига


 
Игорь Шевченко ©   (2005-09-01 18:24) [22]

Kerk ©   (01.09.05 18:12) [21]

Неа. Будет 2 и один пустой :)


 
Kerk ©   (2005-09-01 18:26) [23]

Игорь Шевченко ©   (01.09.05 18:24) [22]
Неа. Будет 2 и один пустой :)


Почему?


 
Игорь Шевченко ©   (2005-09-01 18:31) [24]

Kerk ©   (01.09.05 18:26) [23]

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


 
Kerk ©   (2005-09-01 18:46) [25]

Игорь Шевченко ©   (01.09.05 18:31) [24]

А. ну там в SetLength длина в Integer указывается.. 2 гига.. понятно.. но VirtualAlloc вроде никто использовать не запрещал


 
dr Tr0jan ©   (2005-09-02 09:09) [26]

Ну раз тему не прикрыли, задам еще один вопрос.
Можно ли эту длинную строку передавать из функции (Result:=stroka)? Не будет ли это влиять на работоспособность программы?


 
Игорь Шевченко ©   (2005-09-02 09:59) [27]

Kerk ©   (01.09.05 18:46) [25]

Попробовал ? Расскажи



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.059 c
1-1125373161
Артем К.
2005-08-30 07:39
2005.09.25
Подскажите, пожалуйста, как перевести дату и время в


10-1103636663
andsoft
2004-12-21 16:44
2005.09.25
Создание таблицы в трехуровневом приложении из клиента


1-1125766063
KLAUS
2005-09-03 20:47
2005.09.25
ListBox1.Items.Strings


9-1117096938
Slavikk
2005-05-26 12:42
2005.09.25
GLScene -меню


4-1121990214
Flood_control
2005-07-22 03:56
2005.09.25
Закрытие приложений при запуске