![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() здраствуйте,подскажите как узнать сколько памяти занимает текст в поле Мемо? имею ввиду не в оперативной памяти,а вот если его сохранять в файл.надо узнать какой будет размер сохраняемого файла
|
#2
|
||||
|
||||
![]() Один символ - байт или два если юникод.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() Код:
Length(Memo1.Lines.Text); //покажет в байтах Google в помощь |
#4
|
|||
|
|||
![]() так просто) спасибо
|
#5
|
|||
|
|||
![]() а если открыт файл в кодировке utf-8 то размер и длинна не совпадают.
т.е. я загружаю в мемо файл кодировки utf8 и делаю memo1.text:=UTF8toANSI(memo1.text); и длинна меньше чем размер файла. там видимо какаято служебна информация гдето содержится?както вычислить можно |
#6
|
||||
|
||||
![]() Ещё раз прочитай, что написал M.A.D.M.A.N.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() хм,ну тут точно не в два раза получиться.разница примерно пару десятков байт получается.а еще если другой файл то там разница еще меньше.
вот например один файл размером 9726 байт,длинна после функции utf8toansi получается 9711.а другой файл весит 12431, показывает 12372. Там походу какието некоторые символы по 2байта получаются чтоли,потому что если через notepad++ открыть файл и преобразовать в ansi то кол-во символов будет как показывает и дельфи,а если просто открыть в родной кодировке,то покажет другое кол-во символов,хотя ни буквой больше не стало. и разница не в два раза а также,немного байт прибавляет |
#8
|
||||
|
||||
![]() Там заголовок существует указывающий на тип кодировки и ещё не мешает прочитать про UTF8.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
![]() выяснил.по 2байта считаются только русские буквы.
блин,тоесть мне еще писать чтоб в тексте каждая буква проверялась на предмет кирилицы %) ну ладно,спасибо ![]() |
#10
|
||||
|
||||
![]() Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
||||
|
||||
![]() Лучше вообще полностью на юникоде работать.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#12
|
|||
|
|||
![]() блин!это уже сложнее.
а какие еще символы считаются латиницей кроме ['A'..'z','0'..'9'] ? как то можно сразу добавить всю таблицу знаков,таких как тире,запятая,точка,вопрос,воскл и тд?-они ж тоже латиницей считаются? |
#13
|
|||
|
|||
![]() Цитата:
|
#14
|
||||
|
||||
![]() Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#15
|
|||
|
|||
![]() angvelem спасибо! теперь правильно размер считается
Код:
j:=0;//кол-во не латинских символов for i:=0 to Length(Memo1.Text) do if Ord(Memo1.Text[i])>180 then inc(j); j:=Length(Memo1.Text)+j; Последний раз редактировалось Snake22, 16.10.2011 в 00:16. |