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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку 
V
    Опции темы
Gigabyte
Дата 7.4.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


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

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



Код

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var inarray1,textarray:array[1..99999] of string;
ltextarray,linarray1:integer;


function readinarray1():integer;
var buf:string[1];
f:textfile;
n,k:integer;
begin
n:=1;
k:=0;
AssignFile(f, 'index.html');
Reset(f);

while not EOF(f) do begin
readln(f, buf);
if buf='>' then k:=0;
 if buf<>'<' then inarray1[n]:=inarray1[n]+buf
 else k:=1;
 if k=0 then n:=n+1;
end;
CloseFile(f); // çàêðûòü ôàéë
 readinarray1:=n;
end;



function readtextarray(name:string):integer;
var buf:string[1];
f:textfile;
n,k:integer;
begin
n:=1;
k:=0;
AssignFile(f, name);
Reset(f);
while not EOF(f) do begin
readln(f, buf);
if buf='>' then k:=0;
 if buf<>'<' then textarray[n]:=textarray[n]+buf
 else k:=1;
 if k=0 then n:=n+1;
end;
CloseFile(f); // çàêðûòü ôàéë
 readtextarray:=n;
end;



function checked():integer;
begin
---сдесь потом будет функция счетчика---
end;



procedure findcheck(n:integer);
var k:integer;
v:string;
begin
v:=inttostr(checked);
for k:=1 to linarray1 do
begin
if inarray1[n]='<dt>' then inarray1[n]:=v[1];
if inarray1[n]='<t>' then inarray1[n]:=v[2];
if inarray1[n]='<s>' then inarray1[n]:=v[3];
if inarray1[n]='<d>' then inarray1[n]:=v[4];
if inarray1[n]='<e>' then inarray1[n]:=v[5];
end;
end;




procedure replace();
var
k,n:integer;
begin
for k:=1 to (ltextarray-1) do    begin
 for n:=1 to linarray1 do
  if inarray1[n]=textarray[k] then inarray1[n]:=textarray[k+1];

 end;
end;

procedure printhtml();
var k:integer;
begin
for k:=1 to linarray1 do write(inarray1[k]);

end;

begin
writeln ('CONTENT-TYPE: TEXT/HTML');


if ParamCount >0 then
     begin
     ltextarray:=readtextarray(ParamStr(1));
     replace;
     end;

linarray1:=readinarray1;
ltextarray:=readtextarray('index.text');
replace;
printhtml;






программа должнапрочитать html фаил в массив из string
но если будет <что-то> то записать это в одну ячейку
потом так-же читать index.text
дальше искать <что-то> из index.text в массиве и если найдет то заменет на текст который находиться после <что-то> в index.text
ну а потом просто выводит содержимое массива с исправленым html файлом на экран
smile smile smile smile smile smile smile smile



--------------------

user posted image
user posted image
PM MAIL ICQ   Вверх
x77
Дата 7.4.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а в чём ошибка?


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
smartov
Дата 7.4.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


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

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



Цитата(x77 @ 7.4.2006, 15:57 Найти цитируемый пост)
а в чём ошибка?

не работает smile
PM MAIL   Вверх
Rennigth
Дата 7.4.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Gigabyte @ 7.4.2006, 16:36 Найти цитируемый пост)
программа должнапрочитать html фаил в массив из string
но если будет <что-то> то записать это в одну ячейку
потом так-же читать index.text
дальше искать <что-то> из index.text в массиве и если найдет то заменет на текст который находиться после <что-то> в index.text
ну а потом просто выводит содержимое массива с исправленым html файлом на экран

Опиши подробнее что программа должна делать, а то если честно не по объеснению не по коду я задачу так и не смог понять.



--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Gigabyte
Дата 7.4.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


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

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



в одном файле храняться теги <...>
после каждого тега есть строчка
программа открывает HTML фаил ищет в нем теги , заменяет на текст который идет после него
выводит с помощью writeln получившийся фаил на экран

проблема в том что в место текста она выводит непонятный набор символов
а если в первой функции readln заменить read то программа вообще висит smile


--------------------

user posted image
user posted image
PM MAIL ICQ   Вверх
x77
Дата 7.4.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



попробовал протестить, это не код, а дурдом какой-то.... лови.

Код

program Project2;

{$APPTYPE CONSOLE}

uses
  Classes, SysUtils;

const
  OldPatterns: array [0..4] of string =
    ('<dt>', '<t>', '<s>', '<d>', '<e>');

var
  HtmlFile: TStrings;
  i: integer;
  NewPattern,
  s: string;

function DoReplace (OldPattern: string): string;
begin
  Result := '<Здесь будет крутой код!!!>';
end;

begin
  if ParamStr (1) = '' then
    Halt (1);

  HtmlFile := TStringList.Create;
  try
    HtmlFile.LoadFromFile(ParamStr (1));
    s := HtmlFile.Text;
    for i := 0 to 4 do begin
      NewPattern := DoReplace (OldPatterns [i]);
      s := StringReplace (s, OldPatterns [i], NewPattern, [rfReplaceAll]);
    end;

     WriteLn (s);
  finally
    HtmlFile.Free;
  end;
end.

Добавлено @ 18:44
з.ы. имя нужного файла - указывать параметром.

Это сообщение отредактировал(а) x77 - 7.4.2006, 18:43


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Gigabyte
Дата 7.4.2006, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


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

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



громное спасибо
только у меня он ничего не выводит на экран


--------------------

user posted image
user posted image
PM MAIL ICQ   Вверх
x77
Дата 7.4.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



вызывай из командной строки.

c:\>project2.exe index.html

и все <dt>, <t> оно заменит на то, что ты пропишешь в своей функции DoReplace.

только вот по последнему твоему пояснению я смотрю, тебе не совсем это нужно. там надо будет переделать чуть-чуть.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
zalex
Дата 7.4.2006, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А вообще, при работе с файлами неплохо бы учитывать исключительные ситуацуии smile, чего нет в коде.
Зачем писать String[1], чем char не подходит?
PM MAIL   Вверх
Gigabyte
Дата 10.4.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Студент-халявщик
**


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

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



Всем спосибо!
я разобрался в коде
немного не то но я дописал как нужно.


--------------------

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

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

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

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

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


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

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


 




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


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

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