Вопрос № 177659: Добрый вечер Уважаемые эксперты. Пожалуйста, подскажите. Возможна ли работа на Delphi 7 с бинарными файлами. А именно с их шестнадцатеричными кодами? Например, возможно ли в определенном файле в ячейке по адресу 134749h прочесть значение д...
Вопрос № 177660: Добрый вечер! Имеется программа, лексический анализатор, он предусматривает ввод комментариев, но при их слитном написании с вводимым текстом выдает ошибку. URL >> Надеюсь на ваш совет, бу...
Вопрос № 177659:
Добрый вечер Уважаемые эксперты. Пожалуйста, подскажите. Возможна ли работа на Delphi 7 с бинарными файлами. А именно с их шестнадцатеричными кодами? Например, возможно ли в определенном файле в ячейке по адресу 134749h прочесть значение двух шестнадцатеричных чисел и записать в него новое значение, например 0Ah.
procedure TForm1.Button1Click(Sender: TObject); var f: file of byte; // Объявляем файловую переменную buf1,buf2: byte; // Временные значения begin assignFile(f,'c:\neon.avi'); // Связываем переменную с конкретным
файлом reset(f); // Открываем существующий файл seek(f,$134749); // Переходм к заданной позиции read(f,buf1); // в BUF1 считываем значение из текущей позиции seek(f,$134749); // Переходм снова к заданной позиции т.к. указатель сместился buf2:=$0A; // Задаем значение для записи write(f,buf2); // записываем его в файл closeFile(f); // Закрываем файл end;
Ответ отправил: Тимошенко Дмитрий, Студент
Ответ отправлен: 04.04.2010, 05:16
Номер ответа: 260582
Оценка ответа: 5 Комментарий к оценке: Все что нужно! Отлично! Спасибо большое.
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260582
на номер 1151 (Россия) |
Еще номера »
Вопрос № 177660:
Добрый вечер! Имеется программа, лексический анализатор, он предусматривает ввод комментариев, но при их слитном написании с вводимым текстом выдает ошибку. URL >> Надеюсь на ваш совет, буду очень признательна.
Отвечает Тимошенко Дмитрий, Студент :
Здравствуйте, sunny91. Если быть точным, комментарии у вас вообще не распознаются, а не только при слитном написании. Надо внести след.изменения в ваш текст (выделены жирным):
Код:
while i <= length(line) do begin chr := line[i]; inc(i);
comment:=(chr='{')
or (chr<>'}') and comment; {Исключение комментариев из анализа, вложенность не учитывается}
if (chr = ' ') or (chr = #13) or (chr = #10) or comment then continue;
if (not (chr in SymbOfFirstGr)) and (not (chr in SymbOfSecondGr)) and (not (chr in commentSymb)) then begin Dialogs.MessageDlg('Ошибка '+IntToStr(i-1)+' символ не верен ',mtError,[mbOk],0);
exit; end;
if chr in SymbOfFirstGr then begin start := i-1; while (chr <> ' ') and (chr <> #13) and (chr <> #10) and (chr<>'{') and ( i <= length(line)+1) do begin chr := line [i]; inc(i); end; curword := copy(line, start, i-start-1); CheckFirstGrammar(curword); dec(i); continue; end;
if chr in SymbOfSecondGr then
begin start := i-1; while (chr <> ' ') and (chr <> #13) and (chr <> #10) and (chr<>'{') and ( i <= length(line)+1) do begin chr := line [i]; inc(i); end; curword := copy(line, start, i-start-1); CheckSecondGrammar(curword); dec(i); continue; end;
end;
Так вроде работает как надо, хот
я код можно было бы и подоптимизировать.
Ответ отправил: Тимошенко Дмитрий, Студент
Ответ отправлен: 04.04.2010, 06:41
Номер ответа: 260583
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 260583
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.