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

Вниз

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

 
Sha ©   (2010-07-21 14:44) [280]

> И ее надо будет откуда-то вызвать.

Это просто учебный пример.
Напишешь подыгрывающую программу.


 
Виталий ©   (2010-07-21 14:45) [281]

А "подыгрывающие" данные случайно сгенерировать что ли, подстроившись под формат?


 
Sha ©   (2010-07-21 14:46) [282]

> А "подыгрывающие" данные случайно сгенерировать что ли, подстроившись под формат?

Почему бы нет?
Сравнишь свой выход с выходом автора (после замены на AnsiChr)


 
Виталий ©   (2010-07-21 14:50) [283]

Хорошо, приду домой и попробую.


 
Виталий ©   (2010-07-21 14:59) [284]

Кстати, такой вот вопрос:
"в Delphi 2009 тип string по умолчанию эквивалентен типу UnicodeString. Кроме того, тип Char по умолчанию - тип WideChar, а тип PChar по умолчанию - PWideChar. "
Я буду использовать юникод-строки. Тогда почему вы говорили об AnsiChr?


 
Sha ©   (2010-07-21 15:00) [285]

> Anatoly Podgoretsky ©   (21.07.10 14:22) [266]
> Это так, но ты попробуй это на Д2010
> А то что функция написана неверна, то это не является заслугой автора.
> Он мог бы ее и правильно написать, хотя бы как предложено Chr(Byte(i)) или
Chr(i and 255)

По идее AnsiChr лучше, но вряд ли он мог мог такое предсказать.


 
Sha ©   (2010-07-21 15:01) [286]

> Виталий ©   (21.07.10 14:59) [284]
> Тогда почему вы говорили об AnsiChr?

Попробуй сам ответить.


 
Anatoly Podgoretsky ©   (2010-07-21 15:02) [287]

> Виталий  (21.07.2010 14:32:34)  [274]

Неправильно, 255 если значия должны быть ограничены (завернуты) на это
значение, поскольку правильно и Chr(Word(x))


 
Anatoly Podgoretsky ©   (2010-07-21 15:02) [288]

> Виталий  (21.07.2010 14:34:36)  [276]

Под Виндоус не надо, нет смысла


 
Виталий ©   (2010-07-21 15:05) [289]


> ограничены (завернуты)

то есть на and c ним (с 255)?

> Попробуй сам ответить.

Не могу.


 
Anatoly Podgoretsky ©   (2010-07-21 15:06) [290]

> Виталий  (21.07.2010 14:59:44)  [284]

А наверно для - AnsiChar = Byte(0..255);
Это понимать надо, а не спрашивать почему, потому что ответом может быть
много и опять упремся в понимание процесса.


 
Anatoly Podgoretsky ©   (2010-07-21 15:07) [291]

> Sha  (21.07.2010 15:00:45)  [285]

Я не знаю насчет него, но я такое предсказывал уже в Турбо Паскаль, всегда
приводя к Byte


 
Anatoly Podgoretsky ©   (2010-07-21 15:08) [292]

> Виталий  (21.07.2010 15:05:49)  [289]

Завернутя это когда после 255 идет не 256, а ноль, по модулю 256


 
Виталий ©   (2010-07-21 15:08) [293]

Совершенно вас не понял. Сказано в описании - юникод, мол, по 2 байта символы. Да. А AnsiChar тут причем?


 
Sha ©   (2010-07-21 15:10) [294]

> Виталий ©   (21.07.10 15:05) [289]
> Не могу.

Главное простота реализации.
На мой взгляд проще сформировать результат в сырой или в Ansi-строке,
а затем перевести ее в юникод. Может быть, я не прав.


 
Виталий ©   (2010-07-21 15:11) [295]

The AnsiChar type is used to hold single characters. It is guaranteed to be 8 bits in size.
Логично, что 0-255


 
Виталий ©   (2010-07-21 15:12) [296]


> в Ansi-строке

У нее каждый символ - AnsiChar, то есть 1 байт. Есть способ в такой строке хранить двухбайтовые символы?
Сырая строка... Вообще что-то новенькое.


 
Виталий ©   (2010-07-21 15:14) [297]


> Есть способ в такой строке хранить двухбайтовые символы?

Понял. Тут не хранение, а конвертация.


 
Sha ©   (2010-07-21 15:17) [298]

> Есть способ в такой строке хранить двухбайтовые символы?

Ага, в двух байтах один символ, как автор.


 
Виталий ©   (2010-07-21 15:19) [299]


>
> Ага, в двух байтах один символ, как автор.

Судя по этому, нифига я не понял. Не вижу я, не понимаю, как он это делает. Вижу только странное соединение строк и все.


 
Sha ©   (2010-07-21 15:22) [300]

Сделай по-своему.


 
Виталий ©   (2010-07-21 15:27) [301]

Я не умею. Не знаю, как можно пихнуть в два байта 1 символ, если эти два байта каждый должен иметь символ. Сделать один байт нулевым? Или при чтении из каталоговой записи кидать все в строку, которая примет это как символы с разными кодами, а при чтении из строки как-то складывать эти коды и получать из них результирующий? Откройте уже путь, я не понимаю, как решить эту проблему.


 
Sha ©   (2010-07-21 15:35) [302]

> Виталий ©   (21.07.10 15:27) [301]

По-своему, как ты хотел, просто сцепляя юникодовые части строки.
Если скажу подробнее, то тебе писать ничего не останется.


 
Виталий ©   (2010-07-21 15:37) [303]


> Если скажу подробнее, то тебе писать ничего не останется

То есть я никогда не пойму ни метод автора кода, ни метод, как в анси-строку записывать юникод.


 
Sha ©   (2010-07-21 15:38) [304]

Для реализации [302] этого не требуется.
А после этого увидишь, что там и понимать-то нечего.


 
RWolf ©   (2010-07-21 15:39) [305]

открой виндовую Таблицу символов, и всё станет понятно.


 
Виталий ©   (2010-07-21 15:40) [306]

Мне кажется сомнительным, что написав одну программу можно понять два совершенно неясных мне метода.


 
Виталий ©   (2010-07-21 15:41) [307]


> открой виндовую Таблицу символов, и всё станет понятно.

Открыл. Наверное, я просто не понимаю ваших мыслей, вы говорите намеками.


 
RWolf ©   (2010-07-21 15:43) [308]


> Виталий ©   (21.07.10 15:41) [307]

это наглядная иллюстрация того, как одному символу соответствуют два байта.


 
Sha ©   (2010-07-21 15:43) [309]

> Виталий ©   (21.07.10 15:40) [306]

Не пытайся накапливать знания впрок методом "в ширину",
задавая кучу вопросов, слабосвязанных с поставленной задачей.
Это тебе только мешает


 
Виталий ©   (2010-07-21 15:44) [310]


>
> это наглядная иллюстрация того, как одному символу соответствуют
> два байта.

Мне это и так было ясно, скажем, кириллическая А как 0410. А теперь нужно два этих байта записать в анси-строку. Но для анси-строки 04 и 10 будут двумя разными символами.


 
Виталий ©   (2010-07-21 15:46) [311]


> задавая кучу вопросов, слабосвязанных с поставленной задачей.

Хорошо. Решу задачу и, возможно, вы мне наконец откроете секрет.


 
Sha ©   (2010-07-21 15:47) [312]

> Виталий ©   (21.07.10 15:46) [311]

Этого не потребуется, поверь. Сам поймешь.


 
RWolf ©   (2010-07-21 15:48) [313]


> Виталий ©   (21.07.10 15:44) [310]

в простейшем случае — просто присвоить юникодную строку анси-строке. Дельфи сам сконвертирует символы.


 
Виталий ©   (2010-07-21 15:50) [314]


> Этого не потребуется, поверь. Сам поймешь.

У меня просто в голове уже возникло представление о том, как я объявляю юникод строку, да буду читать ее через BlockRead. А вот представления о тех задачах не возникло)


 
Anatoly Podgoretsky ©   (2010-07-21 15:52) [315]

> Виталий  (21.07.2010 15:08:53)  [293]

А AnsiChar один байт.


 
Anatoly Podgoretsky ©   (2010-07-21 15:53) [316]

> Sha  (21.07.2010 15:10:54)  [294]

По уму в 2010 нельзя использовать AnsiString, обязательно RawByteString,
если конечно клиенту это что то говорит. Иначе возможны побочные эффекты


 
Виталий ©   (2010-07-21 15:54) [317]


> просто присвоить юникодную строку анси-строке

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


 
Anatoly Podgoretsky ©   (2010-07-21 15:55) [318]

> Виталий  (21.07.2010 15:12:56)  [296]

String может хранить что угодно, хоть код программы. Так что двубайтные
символы тоже можно. Только помнить о побочных эффектах.


 
Anatoly Podgoretsky ©   (2010-07-21 15:56) [319]

> Виталий  (21.07.2010 15:19:59)  [299]

У автора нет AnsiString они тогда еще не существовали.


 
Sha ©   (2010-07-21 15:57) [320]

> Anatoly Podgoretsky ©   (21.07.10 15:53) [316]
> Иначе возможны побочные эффекты

Разумеется, сырая предпочтительнее, но можно и Ansi,
если данные пересылать при помощи Move.



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 вся ветка

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

Наверх




Память: 1.07 MB
Время: 0.077 c
2-1281499635
6ruse
2010-08-11 08:07
2010.11.07
Помогите с полем


15-1280041741
Loginov Dmitry
2010-07-25 11:09
2010.11.07
Пишем свой wysiwyg HTML-редактор


2-1281765808
Fr
2010-08-14 10:03
2010.11.07
Ping хоста


15-1279704739
12
2010-07-21 13:32
2010.11.07
О танках мнение.


15-1280176169
Юрий
2010-07-27 00:29
2010.11.07
С днем рождения ! 27 июля 2010 вторник