ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

  #1  
Старый 27.07.2007, 02:09
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


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

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

  #2  
Старый 27.07.2007, 02:20
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


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

Цитата:
Сообщение от 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 в этом случае успешно вылетает
 

  #3  
Старый 27.07.2007, 02:24
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


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

Ну незнаю, могу еще предложить файловые потоки. Если конечно на Vcl пишешь.
 

  #4  
Старый 27.07.2007, 02:41
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


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

Вот что-то ужасное накидал

Код:
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;
 

  #5  
Старый 27.07.2007, 14:03
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


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

Цитата:
Сообщение от 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;
Да вот то,что надо работает как часы
 

  #6  
Старый 27.07.2007, 04:01
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

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

а есть в делфи 7 код например такой
procedure TForm1.Button1Click(Sender: TObject);
begin
............ {чтоб при клике машина ушла на перезагрузку??? или такое ни как???} подскажите plz
end;

end.
 

  #7  
Старый 27.07.2007, 04:59
FeraS
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме:
5381835

Репутация: 1329


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

SNAIPER ShoT
Код:
ExitWindowsEx(EWX_REBOOT+EWX_FORCE, 0);
 

  #8  
Старый 27.07.2007, 05:04
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

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

ТЫ прям ВОЛШЕБНИК!!! СПС =)!!!
 

  #9  
Старый 27.07.2007, 13:52
t04
Участник форума
Регистрация: 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;
 

  #10  
Старый 27.07.2007, 18:03
da_ff
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме:
413927

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

Цитата:
Сообщение от t04  
перевожу исходник с си на делфи, не могу понять где ошибка в коде.
=) в функцию ServAccept передается указатель на сокет а не сам сокет просто его еще надо разименовать перед использованием в accept
 
 





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


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




ANTICHAT.XYZ