Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2009, 20:44   #1
AndreyFreeman
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
Смущение Спарсить одну строчку

Здравствуйте!
Подскажите пожалуйста, как спарсить в String переменную одну строчку с сайта
http://2ip.ru/ а именно строчку, содержащую IP адрес. Я пишу прогу для управления роботом через инет, и вот такая трабла
Спасибо)
AndreyFreeman вне форума Ответить с цитированием
Старый 24.09.2009, 22:52   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
<font color="#0033FF">
вот опорный элемент+можно учесть то что до него.

функции Pos,Copy.PosEx/Delete в помощь.
примеров парсинга много тут, я сам писал не мало.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.09.2009, 07:54   #3
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Если Вы привыкли парсить с помощью регулярных выражений в стиле Перла то есть компонент TRegExpr. ( хотел выложить ссылку на сайт, но пишет что сервер не найден ).
s.Creator вне форума Ответить с цитированием
Старый 25.09.2009, 13:17   #4
AndreyFreeman
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

не могли бы Вы привести хотя бы небольшой пример подобного кода?
AndreyFreeman вне форума Ответить с цитированием
Старый 25.09.2009, 13:42   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Так подойдет:?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DB, DBTables, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var s:TStringStream;e:string;i:integer;
begin
 s:=TStringStream.Create;
 IdHTTP1.ProxyParams.ProxyPort:=8080;
 IdHTTP1.Get('http://2ip.ru/',s);
 e:=s.DataString;
 i:=pos('<font color="#0033FF">',e);
 delete(e,1,i);
 i:=pos('>',e);
 delete(e,1,i);
 i:=pos('</font>',e);
 delete(e,i,length(e)-i);
 caption:=e;
 s.Free;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 16:41   #6
AndreyFreeman
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

большое спасибо за код) Но выдаёт ошибку создания TStringStream.Create;
[DCC Error] Unit1.pas(33): E2035 Not enough actual parameters

Вы не могли бы приаттачить проект?

Последний раз редактировалось Stilet; 25.09.2009 в 17:11.
AndreyFreeman вне форума Ответить с цитированием
Старый 25.09.2009, 17:12   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Вы не могли бы приаттачить проект?
Я уже домой ухожу, пробовал на 2009 ке.
Посмотри в хелпе про TStringStream.Create; чего там ему нужно. Но по моему ты что-то путаешь. У меня ведь сработало.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 17:29   #8
AndreyFreeman
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я уже домой ухожу, пробовал на 2009 ке.
Посмотри в хелпе про TStringStream.Create; чего там ему нужно. Но по моему ты что-то путаешь. У меня ведь сработало.
возможно) у меня Delphi 2007)
AndreyFreeman вне форума Ответить с цитированием
Старый 25.09.2009, 17:45   #9
AndreyFreeman
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

Всё, проблема решилась. Вот такой синтаксис:

s:=TStringStream.Create('');

Спасибо за помощь
AndreyFreeman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно передалать одну строчку в коде (С++) Olya90 Помощь студентам 4 29.06.2009 21:57
Как в C++ организовать ввод данных в одну строчку? amdbodia Общие вопросы C/C++ 10 16.05.2009 18:03
слои в строчку 1div HTML и CSS 7 19.12.2008 16:36
Рразъясните строчку. Amen Помощь студентам 11 30.08.2008 02:45
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58