Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   [Delphi] памогите с функцией (https://forum.antichat.xyz/showthread.php?t=194433)

cel 07.04.2010 23:56

[Delphi] памогите с функцией
 
Вот функция:

PHP код:

function TForm1.Parsing(text:String): string;
var
i:integer;
SkTStringList;
 
NewMsg,name:string;
 New:
TStringList;
begin
sk
:= TStringList.Create;
sk.Text:=text;
     For 
:= 0 To sk.Count -do
     
begin
       
If Pos('id="homelink"'sk[I]) <> 0 Then
       begin
          id 
:= sk[I];
          
id := Copy(idPos('href="'id), Length(id));
          
Delete(idPos('">'id),Length(id));
          
id := Copy(idPos('id'id), Length(id));
          
Delete(id1,2);
       
end;
     
end;

     For 
:= 0 To sk.Count -do
     
begin
       
If Pos('<div class="shah">'sk[I]) <> 0 Then
       begin
          name 
:= sk[I];
          
name := Copy(namePos('">'name), Length(name));
          
delete(name,Pos('<'name), Length(name));
          
delete(name12);
       
end;
     
end;

     For 
:= 0 To sk.Count -do
     
begin
       
If Pos('<a href="/mail.php?id='sk[I]) <> 0 Then
       begin
          mesage 
:= sk[I];
          
mesage := Copy(mesagePos('<a href="/mail.php?id='mesage), 100);
          if 
Pos('</b>'mesage) <>0 then
          begin
          delete
(mesagePos('</b>'mesage),Length(mesage));
          
delete(mesagePos('<a href='mesage),pos('(<b>',mesage));
          
delete(mesage1,3);
          
end
          
else
          
mesage:='нет';
       
end;
     
end;

 if 
strtoint(id) <>0 then
 begin
label3
.Caption:='У вас '+mesage+' новых сообщений.';
Label1.Caption:='Здраствуйте '+name;
Label2.Caption:='Ваш ИД: '+id;
NewMsg:=name+', у вас '+mesage+' новых сообщений';
memo1.lines.add(NewMsg);
end
else
begin
NewMsg
:='Вы не авторизованы!';
memo1.lines.add(NewMsg);
new.
Free;
sk.Free;
end

Она выдаёт ошибку когда её вызываеш опять другой кнопкой

Код HTML:

projekt  raised exception class EAccess Violation with message:" Access violation at address 00000020.Read of address  00000020",Progres stopped ...
И ещё вапрос,как сделать чтоб приложение ело меньше опиротивы??

DeepBlue7 07.04.2010 23:59

Цитата:

Сообщение от cel
И ещё вапрос,как сделать чтоб приложение ело меньше опиротивы??

Ну по конкретному приложению помочь немогу... а вообще - поменьше использовать "повторялки" одного и того-же кода...

cel 08.04.2010 00:01

У меня нет "повторялок" кода)

[stranger] 08.04.2010 00:02

не инициализирована new
добавь строчку new := TStringList.Create;
Код:

function TForm1.Parsing(text:String): string;
var
...
begin
new := TStringList.Create;
sk:= TStringList.Create;
sk.Text:=text;
...
end;


cel 08.04.2010 00:12

добавил всеравно этоже ошибка

JnK 08.04.2010 09:48

1. Код можно было уменьшить в 2, а то и в 3 раза. Как сказал DeepBlue7, повтор есть.
На пример: Цикл, зачем 3 раза, если можно 1 раз, всеравно нет глобально зависящих переменных.
2. Насчет ошибки, при повторном запуске он пробует считать данных которых нет. Следовательно F8 и смотри, где убиваются они.

cel 08.04.2010 18:12

непамогло(((

Berman 08.04.2010 18:22

free юзай не будет столько жрать

cel 08.04.2010 18:39

юзаю

Chrome~ 08.04.2010 18:40

На выполнении какой строки ошибка происходит?


Время: 10:25