Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.051 c
9-1117104669
Buffer
2005-05-26 14:51
2005.09.25
DX VertexBuffer


14-1125574544
TUser
2005-09-01 15:35
2005.09.25
Примиримся ...


4-1122368758
Чапаев
2005-07-26 13:05
2005.09.25
LPT-порт. Чтение/запись.


14-1125082478
raymond
2005-08-26 22:54
2005.09.25
Прграмма - репозиторий данных


3-1123604223
Punch
2005-08-09 20:17
2005.09.25
Как убрать ненужный "Locate"?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский