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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конец абзаца 
:(
    Опции темы
Алкоголик
Дата 6.8.2009, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Здраствуйте.
Наверное сегодня у меня совсем мозг не работает, но не могу решить такую тривиальную задачу.
Есть текстовый файл нужно отсчитать 4000 символов и найти конец абзаца. Делаю так:
Код

var
  str:string;
  i,kolvo:integer;
  f: TextFile;
begin
  kolvo:=0;
  AssignFile(f, edit1.text);
  Reset(f);
  while not EOF (f) do begin
    readln (f, str);
    kolvo:=kolvo+length(str);
    if kolvo>4000 then begin
      for I := 1 to Length(str) do begin
         if str[i]=#13 then
            Showmessage(str);

      end;
    end;
  end;



Выдает ошибку код..
Помогите...


PM MAIL   Вверх
Keeper89
Дата 6.8.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Что-то я не понял... Надо скачать определенно 4000 символов или как попадется, а в том что попадется найти конец абзаца?


--------------------
PM MAIL WWW   Вверх
Алкоголик
Дата 6.8.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Отсчитываем от начала 4000 символов и начинаем искать конец абзаца.

Добавлено через 1 минуту и 40 секунд
Вообщем впринципе кол-во символов не важно, нужно найти конец абзаца
PM MAIL   Вверх
Snowy
Дата 7.8.2009, 12:21 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Код
function GetNStr(FileName: string; kolsim: integer): string;
{* FileName - имя файла
   kolsim - количество символов *}
var
  fs: TFileStream;
  i:  Integer;
begin
  Result := '';
  try
    fs := TFileStream.Create(FileName, fmOpenRead and fmShareDenyWrite);
    if fs.Size < kolsim then kolsim := fs.Size;
    SetLength(Result, kolsim);
    fs.Read(Result[1], kolsim);
    i := LastDelimiter(#13, Result);
    if i > 0 then Result := Copy(Result, 1, i-1);
  finally
    fs.Free;
  end;
end;

PM MAIL   Вверх
Алкоголик
Дата 7.8.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Snowy, спасибо.

Но меня зантересовал такой вопрос: если считывать файл паскалевским методом, то символ конец абзаца(#13) не считывается?
PM MAIL   Вверх
Snowy
Дата 10.8.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Для ReadLn #13-й символ является разделителем.
По нему он нарезает строки.
Сам символ не читает, т.к. для него он служебный.
Да и смысла нет - эти функции давно устарели и имеются в наличии только для совместимости со старым кодом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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