Главная страница
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.52 MB
Время: 0.04 c
1-1125328300
nitrino
2005-08-29 19:11
2005.09.25
Unicode


4-1122777656
GETWORD
2005-07-31 06:40
2005.09.25
Определение момента поного открытия MS Word


1-1125725047
r9000
2005-09-03 09:24
2005.09.25
Определение границы столбца в stringgride


14-1125968559
vidiv
2005-09-06 05:02
2005.09.25
Как принтер так печатает?!


14-1124117877
_dimka
2005-08-15 18:57
2005.09.25
День траура рок музыки