Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В чем глюк? [D5, Win95/98]


Schummmi ©   (2002-02-03 10:13:00) 

Доброе утро, Мастера! Не поможите ли. Вот привожу вам часть кода:
type
TURL = record
case Kind:Byte of
0:(GoURL:PChar);
1:(EMail:PChar);
2:(SrEng:Integer;SrText:PChar);
end;
..............................................................

function ReadURL(FileName:string):TURL;
{чтение URL"а из файла}
label 1;
var
F:TextFile;
C,P:Integer;
St,Ts,Adr:^String;
begin
New(St);
New(Ts);
New(Adr);
St^:="";
Adr^:="";
Ts^:="";
Result.Kind:=0;
AssignFile(F,FileName);
Reset(F);
While True do
begin
Readln(F,Ts^);
If (Ts^="[InternetShortcut]") or (Ts^="[InternetShortCut]") then goto 1;
end;
1:Read(F,St^);
P:=Pos("Mailto:",St^);
if P<>0 then
begin
Result.Kind:=1;
Result.EMail:=PChar(System.Copy(St^,P+7,Length(St^)-2));
CloseFile(F);
Exit;
end;
For C:=0 to Form1.Adress.Count-1 do
begin
Adr^:=Form1.Adress.Strings[C];
P:=Pos(Adr^,St^);
if P<>0 then
begin
Result.Kind:=2;
Result.SrEng:=C;
Result.SrText:=PChar(System.Copy(St^,P+Length(Adr^),Length(St^)-2));
CloseFile(F);
Exit;
end;
end;
P:=Pos("URL=",St^);
if P<>0 then
begin
Result.Kind:=0;
Result.GoURL:=PChar(System.Copy(St^,P+4,Length(St^)-(P+3)));
CloseFile(F);
Exit;
end;
CloseFile(F);
Dispose(St);
Dispose(Adr);
end;

В чем глюк? Если Result.Kind = 0 то Result.GoUrl всякую ерунду выдает, вместо нужного URL"а Спасибо!


Schummi   (2002-02-23 08:16:00) [1]

Я проанализировал свою программу и увидел, что function ReadURL(FileName:string):TURL;используется только в одном месте, вот и решил убрать эту функцию и поместил часть её кода непосредственно в то место, из которого она вызывалась. Но Всем Огромное Спасибо за Старания!


Набережных С.   (2002-02-09 13:59:00) [2]

>Пошаговой отладкой не пользовался, надо попробовать

?!!!

Без комментариев. Словарного запаса не хватает.


Schummi   (2002-02-09 13:27:00) [3]

Пошаговой отладкой не пользовался, надо попробовать. А на всякий случай, может есть другие варианты? Спасибо.


Набережных С.   (2002-02-09 12:25:00) [4]

А пошаговая отладка что показывает? Posхоть раз возвращает что-нибудь, кроме нуля?


MBo   (2002-02-09 07:54:00) [5]

>Набережных С.
Действительно. Учту.


Schummmi   (2002-02-09 07:47:00) [6]

Что значит глюки. Вот на форме у мя FileListBox. Его активная папка - Избранное. В евоном ОнКлике я пишу, чтобы в Edit отображался URL, который содержит ентый файл. Но когда я раз кликаю, то в Edit"е всякая ерунда появляется. Например: "Адрес:", "Создать" и т.п. Причем это все названия моих лэйблов, иногда название самого файла проскакивает! Вот тут то я бессилен!


Набережных С.   (2002-02-08 17:44:00) [7]

>Mbo © (08.02.02 07:36)

TRcr0 = record
case integer of
0:(F1:integer);
1:(W1:Word; W2:Word);
end;

TRcr1 = record
case I:integer of
0:(F1:integer);
1:(W1:Word; W2:Word);
end;

ShowMessage(IntToStr(SizeOf(Trcr0)));//4
ShowMessage(IntToStr(SizeOf(Trcr1)));//8


Mbo   (2002-02-08 07:36:00) [8]

в вариантной записи
case Kind:Byte of
ничего не означает, обращаться и присваивать его не надо.
если хочется знать вид прочитанного, надо ввести отдельное поле
TURL = record
Kind:Byte;
case k:byte of
0:(GoURL:PChar);
1:(EMail:PChar);
2:(SrEng:Integer;SrText:PChar);
end;


SoftOne   (2002-02-08 01:34:00) [9]

Как убрал?
И какие глюки?


Schummmi   (2002-02-07 22:51:00) [10]

Case убрал, но все равно глюки выдает!


SoftOne   (2002-02-04 02:18:00) [11]

Убери case.
Именно он тебе жизнь портит!


Schummi   (2002-02-03 18:02:00) [12]

Попробуйте в FileName задать путь к url-файлу.


Schummmi   (2002-02-03 10:14:00) [13]

Надеюсь я вопрос понятно задал?


Наверх

Титульная страница Поиск, карта сайта Написать письмо