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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как можно подправить теги в Html, изменить Html перед тем его открыть.... 
:(
    Опции темы
Simchik
Дата 18.4.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уважаемые программисты окажите пожалуйста помощь!!!
Получаю Html с интернета, нужно изменитьтег который выглядит так: <img  src=/i/14.gif> 
На тег который будет выглядеть вот так:<img src=  i/14.gif> .
Заранее огромное спасибо!!!
 
PM MAIL   Вверх
Marlin
Дата 19.4.2006, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Работай с html как с обычным текстовым документом. Находи свой тег и меняй его. 
--------------------
Программист решает проблемы, о которых пользователь даже не задумывается,способами, о котороых он даже не подозревает.
PM MAIL   Вверх
x77
Дата 19.4.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(F1)

Unit

SysUtils

Category

string handling routines

Delphi syntax:

function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

C++ syntax:

extern PACKAGE AnsiString __fastcall StringReplace(const AnsiString S, const AnsiString OldPattern, const AnsiString NewPattern, TReplaceFlags Flags);

Description

StringReplace replaces occurrences of the substring specified by OldPattern with the substring specified by NewPattern. StringReplace assumes that the source string may contain Multibyte characters.

S is the source string, whose substrings are changed.

OldPattern is the substring to locate and replace with NewPattern.

NewPattern is the substring to substitute for occurrences of OldPattern.

Flags is a set of flags that govern how StringReplace locates and replaces occurrences of OldPattern. If Flags does not include rfReplaceAll, StringReplace only replaces the first occurrence of OldPattern in S. Otherwise, StringReplace replaces all instances of OldPattern with NewPattern. If the Flags parameter includes rfIgnoreCase, The comparison operation is case insensitive.


соответственно, требуется:

Код

var
  s: TStrings;
begin
  s := TStringList.Create;
  try
    s.LoadFromFile (...);
    s.Text := ReplaceString (s.Text, '<img  src=/', '<img  src=', rfReplaceAll);
    ...
  finally
    s.Free;
  end;
end;
  

Это сообщение отредактировал(а) x77 - 19.4.2006, 14:31


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


Новичок



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

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



x77, Почему прога ругается на следующее предложение:
Код

ss.Text :=StringReplace (ss.Text, '<img  src=/', '<img  src=', rfReplaceAll);

Ругается следующим образом:
[Error] Unit1.pas(141): Incompatible types: 'TReplaceFlags' and 'Enumeration'
Т.е. Несовмистимые типы. 
 
PM MAIL   Вверх
Spectral
Дата 19.4.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile 
Код

 StringReplace (ss.Text, '<img  src=/', '<img  src=', [rfReplaceAll]);
 
PM MAIL   Вверх
Simchik
Дата 20.4.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

StringReplace (ss.Text, '<img  src=/', '<img  src=', [rfReplaceAll]);


Spectral, Так тоже пробовал, РУГАЕТСЯ!!! 
Помогите пожалуйста, я уже замучался!!! Это моя курсовая... Нужно было узнать прогноз погоды. 
Практически все работает, осталось только вот-это...  
PM MAIL   Вверх
Тьма
Дата 20.4.2006, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот, все работает
Код

  Edit2.Text := StringReplace(Edit2.Text, 'edit', 'tide', [rfReplaceAll+rfIgnoreCase]);
  

Это сообщение отредактировал(а) Тьма - 20.4.2006, 23:53


--------------------
Vir magni ingenii                 
PM MAIL ICQ   Вверх
Rouse_
Дата 21.4.2006, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну к примеру вот так:

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, mshtml, ActiveX;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    WebBrowser1: TWebBrowser;
    WebBrowser2: TWebBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  StartImg = '<img src="';
  EndImg = '>';
  LengthStart = Length(StartImg);
  LengthEnd = Length(EndImg);
  LengthSum = LengthStart + LengthEnd;
var
  InHTML, OutHTML, ImageLink: String;
  Position: Cardinal;
  Document: IHtmlDocument2;
  V: Variant;
begin
  // Загружаем оригинальную страницу (для сравнения)
  WebBrowser1.Navigate('http://www.yandex.ru');
  // Получаем код этой страницы руками
  InHTML := IdHTTP1.Get('http://www.yandex.ru');
  // Начинаем парсить
  while Length(InHTML) > 0 do
  begin
    // Ищем начало рисунка
    Position := Pos(StartImg, InHTML);
    // Если нашли
    if Position > 0 then
    begin
      // Все что до него - помещаем в выходной буффер
      OutHTML := OutHTML + Copy(InHTML, 1, Position - 1);
      // Удаляем ненужное из входного буффера
      Delete(InHTML, 1, Position - 1);
      // Ищем конец картинки
      Position := Pos(EndImg, InHTML);
      // Запоминаем картинку
      ImageLink := Copy(InHTML, LengthStart, Position - LengthSum);
      // Если эта картинка грузится не с узла img.yandex.ru - добавялем ее в выходной буффер
      if Pos('img.yandex.ru', ImageLink) = 0 then
        OutHTML := OutHTML + Copy(InHTML, 1, Position + LengthEnd - 1);
      // Удаляем из входного
      Delete(InHTML, 1, Position + LengthEnd - 1);
    end
    else
    begin
      // Больше картинок нет - все что осталось перекидываем в выходной буффер
      OutHTML := OutHTML + InHTML;
      InHTML := '';
    end;
  end;
  // Закидываем пропарсенный текст в бразер
  WebBrowser2.Navigate('about:blank');
  while WebBrowser2.Document = nil do
    Application.ProcessMessages;
  Document := WebBrowser2.Document as IHtmlDocument2;
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := OutHTML;
  Document.Writeln(PSafeArray(TVarData(v).VArray));
end;

end.
 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
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.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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