[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Dr.Perry_Cox

    Dr.Perry_Cox Member

    Joined:
    24 May 2009
    Messages:
    16
    Likes Received:
    10
    Reputations:
    0
    Получается идентификатором может быть любое "cлово"?
     
  2. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    да, главное чтобы не было цифр перед словом
     
  3. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    Идентификаторы Turbo Pacal:

    1. Состоят из латинских букв и цифр. Начинать идентификатор надо с буквы (x1)
    2. Строчные и прописные буквы не различимы (a=A)
    3. Идентификатор может включать любое число символов, но различимыми будут только первые 63 символа
    4. Идентификатор не может быть служебным словом Turbo Pascal
     
  4. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    Подкиньте идею - нужно последовательно считывать по строке из текстового файла используя WinApi. Получается считать сразу весь файл в буфер, а можно ли сделать это именно построчно? Просто разделять вручную массив немного геморно.
    Часть кодa:
    Code:
    const
      MAX_BYTES_TO_READ = 65536;
    
    var
      hFile: Cardinal;
      dw: DWORD;
      buf: array of char;
      len: integer;
    begin
      hFile:= CreateFile('file.zip', GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
      If hFile = -1 then exit;
      len:=GetFileSize(hFile, nil);
      SetLength(buf, len);
      repeat
        ReadFile(hFile, buf, MAX_BYTES_TO_READ, dw, nil);
      until dw = 0;
      CloseHandle(hFile);
    
     
  5. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    intNet, Вот из учебника чтение по строчкам и запись в мемо

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
       f: TextFile;       // файл
       fName: String[80]; // имя файла
       buf: String[80];   // буфер для чтения из файла
    
    begin
       fName := 'C:\test.txt;
       AssignFile(f, fName);
    
       {$I-}
       Reset(f);  // открыть для чтения
       {$I+}
       if IOResult <> 0 then
         begin
           MessageDlg('Ошибка доступа к файлу ' + fName,
                       mtError,[mbOk],0);
           exit;
         end;
    
       // чтение из файла
       while not EOF(f) do
         begin
            readln(f, buf);       // прочитать строку из файла
            Memo1.Lines.Add(buf); // добавить строку в поле Memo1
         end;
    
       CloseFile(f); // закрыть файл
    end;
    
     
  6. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    Он вроде на WinApi просил
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 intNet Вот что значит впадлу встать посмотреть на градусник )
    В этом треде я уже кидал функцию чисто на WinAPI для построчного чтения файла.

    https://forum.antichat.ru/showpost.php?p=1440018&postcount=4085
     
    #4027 slesh, 26 Aug 2009
    Last edited: 26 Aug 2009
    1 person likes this.
  8. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как при событии TForm1.FormClose отменить закрытие формы?

    Exit не работает, в гугле по этой теме много мусора
     
  9. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    В гугле много инфы

    Code:
    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    CanClose:=False;
    end;
    еще можно в OnClose прописать:
    Code:
    action:=caNone;
    -
    [edited]
    Спасибо тому доброму человеку, который поставил мне -20 за этот пост. Чмаке, детка
    [/edited]
     
    #4029 s0l_ir0n, 26 Aug 2009
    Last edited: 26 Aug 2009
    1 person likes this.
  10. InfectedM

    InfectedM Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    может кто скинуть пример отправки post запросов через winsock ?
    в гугле мало примеров если находил то кривые
     
  11. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Code:
    var
    wData:WSAData;
    s:TSOCKET;
    addr:sockaddr_in;
    email,pass,sendbuff:string;
    PostData:string;
    
    begin
    
      WSAStartup(makeword(1,1),wData)
      s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
      FillChar(addr, SizeOf(sockaddr_in), 0);
      addr.sin_family:=AF_Inet;
      addr.sin_port:=htons(80);
      addr.sin_addr.S_addr:=inet_addr('93.186.224.234');
      Connect(S,addr,SizeOf(TSockAddr));
            PostData := '';
            PostData := 'email=' + email+'&'+'pass='+pass ;
            sendbuff := '';
            sendbuff := 'POST /login.php HTTP/1.1'+ #13#10 +
                        'Host: vkontakte.ru'+ #13#10 +
                        'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 AdCentriaIM/1.7 Firefox/2.0.0.14 WebMoney Advisor'+ #13#10 +
                        'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'+ #13#10 +
                        'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'+ #13#10 +
                        'Accept-Encoding: gzip,deflate'+ #13#10 +
                        'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'+ #13#10 +
                        'Keep-Alive: 300'+ #13#10 +
                        'Connection: keep-alive'+ #13#10 +
                        'Referer: http://vkontakte.ru/index.php'+ #13#10 +
                        'Cookie: remixchk=5'+ #13#10 +
                        'Content-Type: application/x-www-form-urlencoded'+ #13#10 +
                        'Content-Length: ' + IntToStr(Length(PostData)) + #13#10#13#10 + PostData+#13#10+'Connection: close' + #13#10#13#10;
      send(s, sendbuff[1] , Length(sendbuff), 0);
      application.ProcessMessages;
      recv(s,sBuff,5000,0);
      application.ProcessMessages;
      Shutdown(S,SD_Send));
      closesocket(s));
    
      WSACleanUp;
    
    Код честно скомунизжен =)
     
    #4031 ex3me, 26 Aug 2009
    Last edited: 27 Aug 2009
  12. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    ex3me, мда, вам лишь бы скомуниздить и не проверить сам код
    если я был бы новичком то сразу же вопросы стали типа "А что такое Err(Connect(S,addr,SizeOf(TSockAddr))), и почему он не выполняется"

    InfectedM, стучи в асю 114400О2, кину пример с коментами
     
  13. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    wolmer, не оффтопь. А если по делу: убрал все лишнее, не заметил единственную эту функцию. А если еще конкретнее: даже полный имбицил поймет, что такое "undefined function Err"
     
  14. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    ex3me, умничайте в другом месте

    infected и другим кто не знает как работать с winsock (а то многие ищут как работать с winsock (да бы избежать массового добавления меня в icq)),

    сорц работы с winsock:http://dump.ru/file/3267835
    Password:"Winsock" (без ковычек)

    Откомментил как смог
     
    #4034 wolmer, 27 Aug 2009
    Last edited: 27 Aug 2009
    1 person likes this.
  15. denisov21g21

    denisov21g21 Banned

    Joined:
    1 Jul 2009
    Messages:
    17
    Likes Received:
    1
    Reputations:
    -1
    Всеммммм

    служба поддержки VDS manager
    591-493-245
     
  16. Scripter

    Scripter Member

    Joined:
    3 Sep 2008
    Messages:
    141
    Likes Received:
    95
    Reputations:
    6
    "О чем не пишут в книгах по Delphi" про winsock в лучшем виде посвящен целый раздел...
     
  17. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Отличная книга, Антон Григорьев - хороший специалист.
    У меня есть целый диск, который идет вместе с этой книгой, там отличные сорцы по Winsock. Вот:

    Скачать файл CD.rar
     
    #4037 =Zeus=, 28 Aug 2009
    Last edited: 28 Aug 2009
  18. DiSi

    DiSi Member

    Joined:
    7 Dec 2007
    Messages:
    0
    Likes Received:
    19
    Reputations:
    0
    как в Delphi в WebBrowser , определить что сайт делает редирект?)

    мб ктото знает как определить вооше данную страничку что в веб браузере? тогда б можно было сравнить ети значения с исходными, и понять был редирект или нет
     
  19. BlackSilver

    BlackSilver New Member

    Joined:
    30 Jan 2009
    Messages:
    28
    Likes Received:
    4
    Reputations:
    0
    C WebBrowser не сталкивался, но если именно редирект, то имеет смысл сравнить запрашиваемый урл перед и после загрузки страницы. Если сайт именно перепосылает, то они должны отличатся.
     
  20. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Чтоб перейти на нужную страницу используй
    Code:
    WebBrowser1.Navigate('http:\\www.google.com');
    Чтоб узнать что сейчас в адресной строке юзай
    Code:
    Caption:=WebBrowser1.LocationURL;
    Не используй функции одна за одной, браузер попросту не успеет зайти на страницу и скажет что LocationURL пустая.
     
    3 people like this.
Thread Status:
Not open for further replies.