HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 30.04.2008, 21:40
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


Отправить сообщение для Nightmarе с помощью ICQ
По умолчанию

Народ, оч нужен код немного видоизменённого парсера, теперь текстовый файл имеет вид:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists">
  <list name="new-group">
    <display-name>Kill List</display-name>
    <entry uri="sip:74933193454@sipnet.ru">
      <display-name>Фомин</display-name>
    </entry>
    <entry uri="sip:74952595438@sipnet.ru">
      <display-name>Лена</display-name>
    </entry>
    <entry uri="sip:78616722508@sipnet.ru">
      <display-name>Глазастый</display-name>
    </entry>
Ну и т.д.. В теге entry содержится номер жертвы и название.
Нужно отпарсить до вида:
Жертва: Фомин. Телефон: 74933193454
Жертва: Лена. Телефон: 74952595438
Жертва: Глазастый. Телефон: 78616722508

Попытался сам отмодифицировать имеющийся код, да где уж мне...
 
Ответить с цитированием

  #2  
Старый 30.04.2008, 23:47
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от Nightmarе  
Народ, оч нужен код немного видоизменённого парсера, теперь текстовый файл имеет вид:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists">
  <list name="new-group">
    <display-name>Kill List</display-name>
    <entry uri="sip:74933193454@sipnet.ru">
      <display-name>Фомин</display-name>
    </entry>
    <entry uri="sip:74952595438@sipnet.ru">
      <display-name>Лена</display-name>
    </entry>
    <entry uri="sip:78616722508@sipnet.ru">
      <display-name>Глазастый</display-name>
    </entry>
Ну и т.д.. В теге entry содержится номер жертвы и название.
Нужно отпарсить до вида:
Жертва: Фомин. Телефон: 74933193454
Жертва: Лена. Телефон: 74952595438
Жертва: Глазастый. Телефон: 78616722508

Попытался сам отмодифицировать имеющийся код, да где уж мне...
Код ужасный, но работает. Убил часик на нем. Сначало показалось что легко но не так то было =)
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
f,outf:TextFile;
b,a,a1:string;
x1,x2,y1,y2,i:integer;
bl:boolean;
begin
Assign(outf,'C:\\out.txt');
Rewrite(outf);
Assign(f,'C:\\file.xml');
Reset(f);
while not EOF(F)
 do begin
 while not EOLN(f) do
 begin
 read(f,a);
 end;
readln(f);
x1:=pos('<display-name>',a);
x2:=pos('</display-name>',a);
y1:=pos('<entry uri="sip:',a);
y2:=pos('@sipnet.ru">',a);
a1:=copy(a,x1+length('<display-name>'),x2-x1-length('<display-name>'));
b:=copy(a,y1+length('<entry uri="sip:'),length(a)-y2);

if y2<>0 then
begin
bl:=true;
write(outf,'Телефон: ');
write(outf,b+' ');
end;

if bl=true then
if x1<>0 then  begin
write(outf,'Жертва: ');
writeln(outf,a1);
write(outf);
bl:=false
end;

end;
close(outf);
end.
Вот такой результат выдает при парсинге твоего файла
Код:
Телефон: 74933193454 Жертва: Фомин
Телефон: 74952595438 Жертва: Лена
Телефон: 78616722508 Жертва: Глазастый
ЗЫ Если что-то не то, значит у тебя в ряд больше 256 символов.

Последний раз редактировалось z01b; 01.05.2008 в 00:16..
 
Ответить с цитированием

  #3  
Старый 01.05.2008, 00:26
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


Отправить сообщение для Nightmarе с помощью ICQ
По умолчанию

Цитата:
Сообщение от z01b  
ЗЫ Если что-то не то, значит у тебя в ряд больше 256 символов.
Большое спасибо, сталкнулся с 2 проблеммами это
Телефон: 74933193454 Жертва: Фомин
Телефон: 74952595438 Жертва: Лена
Телефон: 78616722508 Жертва: Глазастый
Кодировка, и + не всю инфу выводит, строк превышающих 100 символов у меня нету
 
Ответить с цитированием

  #4  
Старый 01.05.2008, 00:27
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от Nightmarе  
Большое спасибо, сталкнулся с 2 проблеммами это
Телефон: 74933193454 Жертва: Фомин
Телефон: 74952595438 Жертва: Лена
Телефон: 78616722508 Жертва: Глазастый
Кодировка, и + не всю инфу выводит, строк превышающих 100 символов у меня нету
залей куданить файл (что парсить надо) и дай сылку.

Последний раз редактировалось z01b; 01.05.2008 в 00:30..
 
Ответить с цитированием

  #5  
Старый 01.05.2008, 20:44
Pir4tt
Участник форума
Регистрация: 03.01.2008
Сообщений: 104
Провел на форуме:
400001

Репутация: 111
Отправить сообщение для Pir4tt с помощью ICQ
По умолчанию

В юзес добавь систем:
Код:
uses
  SysUtils, System;
Перед этим:
Код:
x1:=pos('<display-name>',a);
Поставь:
Код:
a:=Utf8ToAnsi(a);
это решит проблему с кодировкой
 
Ответить с цитированием

  #6  
Старый 02.05.2008, 13:32
-Hormold-
Постоянный
Регистрация: 29.09.2007
Сообщений: 617
Провел на форуме:
3250478

Репутация: 999


Отправить сообщение для -Hormold- с помощью ICQ
По умолчанию

Код:
Function Rss(Url:String):String;
Function Exists(S:String):Boolean;
begin
 if (S='description') or (s='title') or (s='link') then result:=true else result:=false;
end;
var
 i,k:integer;
 s:String;
 IdHTTP:TIdHTTP;
 XMLDocument:TXMLDocument;
Begin
 IdHTTP:=TIdHTTP.Create(nil);
 XMLDocument:=TXMLDocument.Create(Application);
 try
  XMLDocument.XML.Text:= IdHTTP.Get(Url);
  XMLDocument.Active:=true;

  i:=0;
  while i<>9 do begin
   if i>XMLDocument.DocumentElement.ChildNodes[0].ChildNodes.count then break;
   for k:=0 to XMLDocument.DocumentElement.ChildNodes[0].ChildNodes[i].ChildNodes.Count-1 do begin
     if (XMLDocument.DocumentElement.ChildNodes[0].ChildNodes[i].ChildNodes[k].LocalName='title') and (s<>'') then s:=s+#13#10+#13#10;
     if Exists(XMLDocument.DocumentElement.ChildNodes[0].ChildNodes[i].ChildNodes[k].LocalName) then
       s:=s+XMLDocument.DocumentElement.ChildNodes[0].ChildNodes[i].ChildNodes[k].text+#13#10;;
   end;
   inc(i);
  end;
  result:=s;
 finally
  XMLDocument.Free;
  IdHTTP.Free;
 end;
  end;
Работает:
Код:
s:=Rss('http://www.1-y.ru/nic.rss');
Ннработает:
Код:
s:=Rss('http://www.webmoney.ru/rss.xml');
И почему 2 или 1 новость?
Можно сделать так чтобы были 5-10 новостей

Последний раз редактировалось -Hormold-; 02.05.2008 в 13:41..
 
Ответить с цитированием

  #7  
Старый 02.05.2008, 13:40
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Дай полный листинг ошибки или дай проект.
 
Ответить с цитированием

  #8  
Старый 02.05.2008, 13:42
-Hormold-
Постоянный
Регистрация: 29.09.2007
Сообщений: 617
Провел на форуме:
3250478

Репутация: 999


Отправить сообщение для -Hormold- с помощью ICQ
По умолчанию

в первом понятно, это из за ошибок в rss ленте.
Цитата:
И почему 2 или 1 новость?
Можно сделать так чтобы были 5-10 новостей
А вот это я не понял =(
 
Ответить с цитированием

  #9  
Старый 02.05.2008, 17:47
KIR@PRO
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме:
905389

Репутация: 332
Отправить сообщение для KIR@PRO с помощью ICQ
По умолчанию

Привет всем....
подскажитепожалста как мона прослушать определённый порт на компе.... к примеру у меня на компе прога соеденина с др компом по tcp при помощи чего (не откажусь от кода) можно прослушать обмен между моим компом и др по этому порту... к примеру возьмем порт 80... заранее благодарю....
 
Ответить с цитированием

  #10  
Старый 02.05.2008, 19:58
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от KIR@PRO  
Привет всем....
подскажитепожалста как мона прослушать определённый порт на компе.... к примеру у меня на компе прога соеденина с др компом по tcp при помощи чего (не откажусь от кода) можно прослушать обмен между моим компом и др по этому порту... к примеру возьмем порт 80... заранее благодарю....
Компонент idTcpServer - закладка Indy Servers.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ