ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

27.07.2007, 02:09
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Файл как я понимаю текстовый? Есть еще логическая функция EOLN, которая возвращает true, если достигнут конец строки. То есть можно вложенным циклом перебрать все строки файла
Код:
while not EOF(f) do
begin
while not EOLN(f) do
begin
read(f,c);
{...}
end;
{...}
end;
Но в принципе от readln мало чем отличается.
надо много раз открыть файл на чтение
одновременно из одной проги чтоль? Или в разных участках кода? Закрываешь файл перед каждым новым открытием?
|
|
|

27.07.2007, 02:20
|
|
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме: 2869410
Репутация:
925
|
|
Сообщение от Joker-jar
Файл как я понимаю текстовый? Есть еще логическая функция EOLN, которая возвращает true, если достигнут конец строки. То есть можно вложенным циклом перебрать все строки файла
Код:
while not EOF(f) do
begin
while not EOLN(f) do
begin
read(f,c);
{...}
end;
{...}
end;
Но в принципе от readln мало чем отличается.
одновременно из одной проги чтоль? Или в разных участках кода? Закрываешь файл перед каждым новым открытием?
То что ты написал толку == 0 я это все знаю,незнал бы неспрашивал  Дела в том что прога может за 1 раз открывать 2 или 3 раза файл ReadLn в этом случае успешно вылетает 
|
|
|

27.07.2007, 02:24
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Ну незнаю, могу еще предложить файловые потоки. Если конечно на Vcl пишешь.
|
|
|

27.07.2007, 02:41
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
Вот что-то ужасное накидал
Код:
procedure ReadLNFile(filename: string);
var
f: THandle;
count: Dword;
buf: array[0..255] of char;
s: string;
begin
s := '';
f:= FileOpen(filename, fmOpenRead or fmShareDenyNone);
repeat
fillchar(buf, sizeof(buf), 0);
count := FileRead(f, buf, 256);
s := s + StrPas(buf);
while pos(#13#10, s) > 0 do
begin
messagebox(0,pchar(copy(s,1,pos(#13#10, s))),nil,0);
delete(s,1,pos(#13#10, s));
end;
until
count = 0;
FileClose(f);
messagebox(0,pchar(s),nil,0);
end;
|
|
|

27.07.2007, 14:03
|
|
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме: 2869410
Репутация:
925
|
|
Сообщение от Joker-jar
Вот что-то ужасное накидал
Код:
procedure ReadLNFile(filename: string);
var
f: THandle;
count: Dword;
buf: array[0..255] of char;
s: string;
begin
s := '';
f:= FileOpen(filename, fmOpenRead or fmShareDenyNone);
repeat
fillchar(buf, sizeof(buf), 0);
count := FileRead(f, buf, 256);
s := s + StrPas(buf);
while pos(#13#10, s) > 0 do
begin
messagebox(0,pchar(copy(s,1,pos(#13#10, s))),nil,0);
delete(s,1,pos(#13#10, s));
end;
until
count = 0;
FileClose(f);
messagebox(0,pchar(s),nil,0);
end;
Да вот то,что надо работает как часы 
|
|
|

27.07.2007, 04:01
|
|
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме: 177842
Репутация:
5
|
|
а есть в делфи 7 код например такой
procedure TForm1.Button1Click(Sender: TObject);
begin
............ {чтоб при клике машина ушла на перезагрузку??? или такое ни как???} подскажите plz
end;
end.
|
|
|

27.07.2007, 04:59
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме: 5381835
Репутация:
1329
|
|
SNAIPER ShoT
Код:
ExitWindowsEx(EWX_REBOOT+EWX_FORCE, 0);
|
|
|

27.07.2007, 05:04
|
|
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме: 177842
Репутация:
5
|
|
ТЫ прям ВОЛШЕБНИК!!! СПС =)!!!
|
|
|

27.07.2007, 13:52
|
|
Участник форума
Регистрация: 10.01.2007
Сообщений: 140
Провел на форуме: 246020
Репутация:
105
|
|
перевожу исходник с си на делфи, не могу понять где ошибка в коде.
Код:
DWORD WINAPI ServAccept(LPVOID lpParam)
{
struct sockaddr_in ClientAddr;
int iSize=sizeof(ClientAddr);
SOCKET sConnect;
while(true)
{
if((sConnect=accept(*(SOCKET*)lpParam,(sockaddr*)&ClientAddr,&iSize))==INVALID_SOCKET)
break;
Connecting((LPVOID)sConnect);
// if(CreateThread(0,0,Connecting,(LPVOID)sConnect,0,0)==0)
// break;
}
return 0;
}
вот на делфи
Код:
procedure ServAccept(lpParam: pointer); stdcall;
var
iSize : integer;
sConnect : TSOCKET;
ClientAddr: PSockAddr;
begin
iSize:=sizeof(ClientAddr);
while true do
begin
sConnect:=accept(TSOCKET(lpParam),ClientAddr,@iSize);
if sConnect = INVALID_SOCKET then
break;
Connecting(pointer(sConnect));
end;
(* if(CreateThread(0,0,Connecting,(LPVOID)sConnect,0,0)==0)*)
(* break;*)
end;
|
|
|

27.07.2007, 18:03
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме: 413927
Репутация:
71
|
|
Сообщение от t04
перевожу исходник с си на делфи, не могу понять где ошибка в коде.
=) в функцию ServAccept передается указатель на сокет а не сам сокет просто его еще надо разименовать перед использованием в accept
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|