Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DGLut - ошибку выводит 
:(
    Опции темы
Budy
  Дата 6.12.2004, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



:Приветствую
Мы вот тут разбираем проектик, а DGLut.pas ошибку выводит, почти в каждой строке пишет
Код

[Fatal Error] DGLUt.pas(353): Line too long (more than 1023 characters)

В чем проблема не понял. По ходу дела длинная строка, но ничего там длинного и нету.
Вот файл:
http://www.scientific-library.net/data/ind...isk%2FChapter3/
Помогите, пжлста!


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Budy
Дата 6.12.2004, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



Ну! Кто-нибудь!


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Dimich
Дата 6.12.2004, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7



А можно файлик как-нибудь по-другому прикрепить или на мыло закинуть, а то я не имею доступа по ftp
mailto: dvmospan собака pisem точка net
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Dimich
Дата 7.12.2004, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7



....Хотя Ваш файл я так и не увидел, однако у меня созрела мысль, что такая ошибка может быть по следующей причине: дело в том, что DOS/Windows и Unix по разному интерпретируют текстовые файлы, а именно различия состоят в представлении разрыва строки 0Dh 0Ah - для DOS/Windows и 0Ah для Unix подобных систем. Поэтому если скачивать/закачивать текстовые файлы по ftp как бинарные, получаем их частичную неработоспособность.
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Budy
Дата 7.12.2004, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 616
Регистрация: 6.2.2004
Где: Екатеринбург

Репутация: 1
Всего: 2



В том то и проблема, что на Delphi 5 и версий ниже работает.


--------------------
Как ты назовешь свой корабль, так на нем и напишут
user posted image
PM MAIL WWW ICQ   Вверх
Dimich
Дата 7.12.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7



Ну а в hex-редакторе его не пробовал смотреть?
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
MacTep
Дата 7.12.2004, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: 4
Всего: 4



У меня такая же ошибка вылезает в программах, в которых использую этот файл, а как избавиться не знаю. Что делать?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
markowww
Дата 8.12.2004, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.2.2003
Где: В Вологде-где

Репутация: нет
Всего: нет



Посмотрел я на файл через HIEW smile Мда.... Вообщем, действительно кое-где (точнее почти везде) используется только CR (0Dh) без LF (0Ah). Я написал прогу, которая после CR везде ставит LF если там LF не было дальше
Код

procedure TForm1.FormCreate(Sender: TObject);
var f, g:TMemoryStream;
   i: integer;
   size: int64;
   char, lf, cr: byte;
begin
  lf:= 10;
  cr:= 13;
  f:= TMemoryStream.Create;
  g:= TMemoryStream.Create;
  f.LoadFromFile('DGlut.pas');
  size:= f.Size;
  for i:= 1 to size do begin
     f.Read(char, 1);
     if char = cr then begin
        f.Read(char, 1);
        if char <> lf then begin
           g.Write(cr,1);
           g.Write(lf,1);
        end
        else g.Write(cr, 1);
        f.Seek(-1, 1);
     end
     else g.Write(char, 1)
  end;
  g.SaveToFile('temp.pas');
end;


Полученный файл я проверил через HIEW. Вроде теперь стало все правильно. Добавил temp.pas в проект, и оно откомпилилось.

Теперь просто все глючные файлы прогоните через эту процедуру и замените оригинальные полученными.

ЗЫ: Без анекдота не обошлось. Я сначала DGlut.pas кинул в директорию Delphi7\lib\. А как видно из листинга DGlut.pas лежит в директории проекта, поэтому я его кинул и туда. Но полученным temp.pas я заменял тот оригинал что лежал в Delphi7\lib\. Потом компилировал и получал ту же ошибку smile Только потом сообразил что она берет Dglut из директории проекта smile 45 минут убил smile Вообщем тяжко быть полоротым smile

Это сообщение отредактировал(а) markowww - 8.12.2004, 02:56
PM MAIL   Вверх
<Spawn>
Дата 8.12.2004, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



markowww Достаточно было поместить весь текст в переменную типа string и вызвать

Код

StringReplace(DGLUTText, #13, #13#10, [rfReplaceAll]);



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
markowww
Дата 8.12.2004, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.2.2003
Где: В Вологде-где

Репутация: нет
Всего: нет



<Spawn>, спасибо! Просто я даже понятия не имел о такой процедуре.

Но, если в файле уже есть #13#10? Тогда на выходе будет (если я ниче не напутал) #13#13#10. Учитывая, что редактор (не компилятор) кода Delphi 7 все таки #13 интерпретирует как перенос строки (тот же DGlut.pas выглядит вполне прилично smile ), то в некоторых местах будет отображаться лишний перенос строки.

Это сообщение отредактировал(а) markowww - 8.12.2004, 10:08
PM MAIL   Вверх
Dimich
Дата 9.12.2004, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7



А не проще ли этот файлик скачать с ftp в Transfer Mode выставив Text? Ведь вышеобсужденная проблема произошла скорее всего из за того, что скачали его с ftp как бинарный файл.

З.Ы. Я по началу тоже писал такого рода приблыды, пока до меня не дошла суть проблемы...
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
<Spawn>
Дата 9.12.2004, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Цитата(markowww @ 8.12.2004, 01:11)
<Spawn>, спасибо! Просто я даже понятия не имел о такой процедуре.

Но, если в файле уже есть #13#10? Тогда на выходе будет (если я ниче не напутал) #13#13#10. Учитывая, что редактор (не компилятор) кода Delphi 7 все таки #13 интерпретирует как перенос строки (тот же DGlut.pas выглядит вполне прилично smile ), то в некоторых местах будет отображаться лишний перенос строки.

Ну да, все верноsmile Не подумал про это. Если не хочется заморачиваться(учитывая, что данная функциональность нужна временно), то можно сначала все существующие #13#10 заменить на #13, а потом вызвать уже приведенную функцию:

Код

StringReplace(DGLUTText, #13#10, #13, [rfReplaceAll]);
StringReplace(DGLUTText, #13, #13#10, [rfReplaceAll]);



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Гость_Гость
Дата 4.5.2005, 16:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Скачал содержимое DGLut.pas в Word
потом обратно - все исправилось автоматически -
без всякого программирования
  Вверх
Yanis
Дата 4.5.2005, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(markowww @ 8.12.2004, 09:11)
<Spawn>, спасибо! Просто я даже понятия не имел о такой процедуре.

Это функция!


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.