Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на Delphi

Выпуск № 083
от 07.10.2002, 19:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 209
Отправлено ответов: 364
Активность: 174.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Jadd
Статус: Опытный
Общий рейтинг: 149.06
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.79
URL: Пристанище неодинокого программиста
[Подробней >>]
Idle Sign
Статус: Начальный
Общий рейтинг: 133.33
[Подробней >>]
 
Pablo
Статус: Профессиональный
Общий рейтинг: 131.91
URL: Моя страничка
[Подробней >>]
Рыжик
Статус: Начальный
Общий рейтинг: 160
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 207. Как прочитать файл и вывести его содержимое в Hex-коде( через пробел) в DBgrid or RichEdit or Memo.... (ответов: 4)
Вопрос № 208. Господа Эксперты! Помогите наконец разобраться с объявлением подпрограмм в Delphi 5. Объясните пожал... (ответов: 4)

Вопросов: 2, ответов: 8


 Вопрос № 207

Как прочитать файл и вывести его содержимое в Hex-коде( через пробел) в DBgrid or RichEdit or Memo.



Вопрос отправлен: 03.10.2002, 15:17
Отправитель: bogdan

[Следующий вопрос >>] [Список вопросов]

Отвечает Jadd

Приветствую Вас, bogdan!
Куда ты будешь выводить хекс - дело вкуса, нос амо преобразование делается с помошью функции Format, описание которой ты найдешь в хелпе по Дельфи. В твоем случае эта команда будет выглядеть так: Format('%x', [<строка>]);. Поле <строка> - это массив аргументов, но, фактически, это - входная строка (строка из фала в твоем случае).

Ответ отправлен: 03.10.2002, 16:24
Отправитель: Jadd


Отвечает Артём Шегеда

Добрый день, bogdan!

Типа - пример

Приложение:

Ответ отправлен: 03.10.2002, 17:38
Отправитель: Артём Шегеда


Отвечает Idle Sign

Добрый день, 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). Скажите пожалуйста где надо мне описать(обЪявить) эту функцию?
Огромнейшее спасибо!


Приложение:


Вопрос отправлен: 04.10.2002, 14:28
Отправитель: Oscar

[Следующий вопрос >>] [Список вопросов]

Отвечает Рыжик

Здравствуйте, 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (31)
Perl (4)
Delphi (17)
Pascal (21)
Basic / VBA (10)
Java / JavaScript (10)
PHP (8)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (28)
"Железо" (34)
Поиск информации (14)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное