Приветствую Вас, bogdan! Куда ты будешь выводить хекс - дело вкуса, нос амо преобразование делается с помошью функции Format, описание которой ты найдешь в хелпе по Дельфи. В твоем случае эта команда будет выглядеть так: Format('%x', [<строка>]);. Поле <строка> - это массив аргументов, но, фактически, это - входная строка (строка из фала в твоем случае). Ответ отправлен: 03.10.2002, 16:24 Отправитель: Jadd Отвечает Артём Шегеда
Добрый день, bogdan! ===== Pro bono publico, no bloody panico! ===== Думаешь просто? Хорошо сидишь? Вот вариант (описывать полностью не буду, если заитересуешься смотри помощь по методам TFileStream): создаем TFileStream, открываем нужный файл под fmOpenRead, читаем по байтам (если нужно не все, то Seek с адресом), (± конвертим в hex), парсим полученные цифирки (ставим пробелы), суем все добро туда, куда нужно (e.g. DBgrid or RichEdit or Memo), освобождаем TFileStream. Еще сидишь? Хорошо! Ответ отправлен: 04.10.2002, 17:31 Отправитель: Idle Sign Отвечает Pablo
Здравствуй, bogdan! Для перевода строки в хекскод можешь использовать либо printf функцию либо метод IntToHex класса AnsiString (String). Например, так str = IntToHex(str1[i],2); где str[i] - i-й символ строки str1. Ответ отправлен: 04.10.2002, 21:19 Отправитель: Pablo
Вопрос № 208
Господа Эксперты! Помогите наконец разобраться с объявлением подпрограмм в Delphi 5. Объясните пожалуйста что должно быть описываться в подразделах TYPE-->Private, Public. Короче я написал простую функцию обработки строк и compiler выводит ошибку(Undeclared Identifier). Скажите пожалуйста где надо мне описать(обЪявить) эту функцию? Огромнейшее спасибо!
Здравствуйте, Oscar! Надо писать не Attach:=m, а Result:=m Если функция находится внутри секции implementation модуля, то она будет видна в этом модуле везде после самой функции. Чтобы функция была видна в других модулях, нужно поместить в секцию interface её декларацию (Function Attach(x:string):string;), а реализацию функции поместить в implementation, затем указать в uses другого модуля имя того модуля, в котором находится функция. Разделы private, public относятся к классам, а не к функциям. Они определяют видимость методов, свойств и полей класса.
Ответ отправлен: 04.10.2002, 15:05 Отправитель: Рыжик Отвечает Артём Шегеда
Приветствую Вас, Oscar!
Почти польностью согласен с экспертом Рыжик, за исключением того, что Attach := m тоже прокатит. Переменную Result ввели уже в Delphi для облегчения жизни программистов. Замечание. В программе есть проверка: x[i]=''. Так вот, символ никогда не будет равен пустой строке! И эта проверка лишена смысла. Ответ отправлен: 04.10.2002, 15:54 Отправитель: Артём Шегеда Отвечает Idle Sign
Добрый день, Oscar! ===== Pro bono publico, no bloody panico! ===== Undeclared Identifier? Что-то не видать... Можно, в принципе, и не объявлять, в этом случае придется все процедуры и функции, "использующие" данную, описывать ПОСЛЕ. Хочешь объявить? Тогда: данная функция, в нашем случае, становиться неотъемлимой частью твоей TForm1 (См. приложение), следовательно и обращаться к ней надо будет по имени-отчеству (Function TForm1.Attach(x:string):string;).
Приложение: Ответ отправлен: 04.10.2002, 17:31 Отправитель: Idle Sign Отвечает Jadd
Приветствую Вас, Oscar! Хорошо бы еще на сам класс поглядеть и на место, где ошибка выскакивает. Но попробуем так разобраться. В разделе public: объявляются члены класса, которые могут быть доступны всем потомкам класса. В разделе private: соответственно те члены класса, которые не могут быть доступны(видны) для всех потомков класса (тут есть еще один нюанс, но он имеет смысл при рассмотрении раздела protected). Глядя на твой код, у меня возникает два предположения насчет того, как выглядит твой класс и, соответственно, место, где возникает ошибка. 1) Судя по коду, функция объявлена глобально и ты пытаешься написать в теле какой-либо функции так MyClass.Attach(somestring); - в этом случае компиллер прав - Attach не является методом класса MyClass. Надо так и писать Attach(somestring), если функция глобальная. 2)Ты написал в классе так: public: function
Attach(x: string): string; а реализацию функции делаешь как в твоем коде, тогда и тут компиллер прав - надо писать так function MyClass.Attach(x: string):string; Вывод) Разберись какой вид функции ты используешь. Могу помочь в дальнейшем. пиши на jadd@rol.ru Ответ отправлен: 07.10.2002, 13:18 Отправитель: Jadd
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.