В чем неправильность моей логики, никак не пойму.. по разному пробовал , почему-то 30 все время выводит бесконечно.. Code: procedure TForm1.btn3Click(Sender: TObject); var i,k: integer; begin i:=0; k:=30; while k<60 do begin while i< mmo1.lines.count do begin if Pos(';'+inttostr(k)+';',mmo1.Lines[i])>0 then mmo2.Lines.Add(mmo1.lines[i]); end; Inc(k); Inc(i); end; end;
Code: procedure TForm1.btn3Click(Sender: TObject); var i,k: integer; begin i:=0; k:=30; while k<60 do begin while i< mmo1.lines.count do begin if Pos(';'+inttostr(k)+';',mmo1.Lines[i])>0 then mmo2.Lines.Add(mmo1.lines[i]); [B] [COLOR=DarkRed]Inc(i);[/COLOR][/B] end; Inc(k); end; end; неправильно инкремент i стоял. она в цикле не менялась.
Та я пробовал и так и как угодно.. Но цикл срабатывает 1 раз только... допустим у меня строки ;30; ;31; ;30; ;45; ;30; Он только строки с 30 выводит и все, тоесть i как буд-то не увеличивается.. у тебя работет, мб это у меня с Делфи трабла ?
Вкурил что ты хочешь ))). Вначале каждого цикла while k<60 обнуляй i, после первого цикла i=mmo1.lines.count, и больше не изменяется. В этом и ошибка.
Freedom , спасибо. Врубил. Че то не внимательный я )) . Не могу найти какие заголовки есть у Mess.Header ? ( Так как они тут по другому называются чем в хидерах на почтовых сервисах ) , допустим есть такие : Mess.Header.From Mess.Header.Priority Mess.Header.XMailer Mess.Header.ReplyTo Mess.Header.ToList Mess.Header.Subject Mess.Header.CustomHeaders Mess.Header.CharsetCode а какие еще есть подскажите пожалуйста
скрин delphi winapi Есть код на делфи: Code: procedure Screenshot(shot: string); var dibH : hBitmap; bits : pointer; info : TBITMAPINFO; width,height : integer; screenDC,dibDC : hDC; f : file of byte; FileHeader : TBITMAPFILEHEADER; begin screenDC := getDC(getDeskTopWindow); dibDC := createCompatibleDC(screenDC); width := getDeviceCaps(screenDC,HORZRES); height := getDeviceCaps(screenDC,VERTRES); info.bmiHeader.biXPelsPerMeter := round(getDeviceCaps(screenDC,LOGPIXELSX)*39.37); info.bmiHeader.biYPelsPerMeter := round(getDeviceCaps(screenDC,LOGPIXELSY)*39.37); zeromemory(@info,sizeOf(info)); with info.bmiHeader do begin biSize := sizeOf(TBITMAPINFOHEADER); biWidth := width; biheight := height; biplanes := 1; biBitCount := 24; biCompression := BI_RGB; end; dibH := createDIBSection(dibDC,info,DIB_RGB_COLORS,bits,0,0); selectObject(dibDC,dibH); bitblt( dibDC, 0,0,width,height, screenDC, 0,0, SRCCOPY); releaseDC(getDeskTopWindow,screenDC); assignFile(f,shot); reWrite(f); if width and 3 <> 0 then width := 4*((width div 4)+1); with fileHeader do begin bfType := ord('B')+(ord('M')shl 8); bfSize := sizeOf(TBITMAPFILEHEADER)+sizeOf(TBITMAPINFOHEADER)+width*height*3; bfOffBits := sizeOf(TBITMAPINFOHEADER); end; blockWrite(f,fileHeader,sizeOf(TBITMAPFILEHEADER)); blockWrite(f,info.bmiHeader,sizeOf(TBITMAPINFOHEADER)); blockWrite(f,bits^,width*height*3); closeFile(f); deleteObject(dibH); deleteDC(dibDC); end; begin Screenshot('C:\duvsu.jpg'); end. он делает скрин экрана, тока скрин получается слишком большого размера в мб, как не жертвуя качеством ужать всё это дело, хелп?
ясен перец, что если ты формируешь битмап и пишешь его в файл с именем 'C:\duvsu.jpg', то от этого он JPEG'ом не станет, а так и останется BMP, если нужно сжатие без потерь, то конвертируй в PNG, например через GDI+, либо что-то другое юзай
Имеется файл на хостинге: mysite.ru/file.txt. Программа должна дождаться пока файл изменится (значение не равно 'empty') и выполнить определенное действие. Пожалуйста подскажите, как реализовать это на Дельфи.
Если файл в открытом доступе то просто делаешь Get запрос на него и проверяешь переменную, код который возвращается.. а далее используй if else . Ставь свои условия.
Хелп, нужно изменить длину массива Code: arra = array[1..9] of string[9]; Ругается на тип массива: Code: SetLength([B]arra[/B], Length(arra)-1); Вот так ( по ряду причин ) не катит, пробовал : Code: type arra = array[1..9] of string[9]; и так System.SetLength(arra, Length(arra)-1); Заранее очень благодарен
Динамический массив самое то,границы указывать не надо! var arra: array of String; .... SetLength(arra, 8);
естественно компиль будет ругаться, когда статический массив попытаешься "раздвинуть" через SetLength: Code: var myArray = array of String[9]; ... cdCount:= 8; SetLength(myArray, cdCount); for i:= 0 to cdCount - 1 do begin ... myArray[i]:= ...; end;
подскажите пожалуйста, как можно восстановить удаленную историю скайпа? Skype log View, Sqlite есть пробовал для просмотра папки скайп на маке (main.db), но они показывают только контактов, и даты чатов, но сами сообщения удалены (так как была удалена история)...в общем, эти программы особо не помогли... Но, на маке, в папке пользователя скайп остались файлы формата .dat - где я вижу зашифрованную переписку между пользователем и разными его контактами (понял, что это переписка путем переименования в .txt). Подскажите, пожалуйста, как я могу сделать читабельными эти файлы? Это очень важно, уже весь интернет почти перерыл. Я хоть часть переписки смогу восстановить, если всю историю нереально будет вернуть. Спасибо большое заранее всем профессионалам!
Как вытащить Response Content из ответа сервера? Пробовал так: if Pos('{"action":"needLogin","success":true,"message"', HTTP.Response.ResponseText)<>0 then - не парсит.
Во первых читайте название темы. Вам в другой раздел совсем. Во вторых, если у вас виндовс (" пробовал на маке" , у вас мак или винда ?) - Пуск- Обслуживание - Архивация и восстановление. Ищите папку с логами и восстанавливаете, если вы конечно не затирали всю память ( не путайте с удалением с корзины Зыы ) . Или просто сделайте откат системы на нужное число. На маке гребу как. так а что после then И какую библиотеку вы используете ? Synapse или indy ? А то меня харит на обе расписывать. Мой вопрос : all - строка с 9 символами . Code: for v:=0 to 8 do begin res:=all[random(Length(all))+1]; result:=result+res; if Pos(res,all)>0 then delete(res,Pos(res,all),Pos(res,all)); res:=''; mmo1.lines.Add(all); // просто проверяю end; Так вот, не могу добиться чтобы сработала delete(res,Pos(res,all),Pos(res,all)); мне из строки all нужно удалить символ который выдал рендом , то есть позицию содержимого res
Как Вы делаете запрос? Вот как можно. Code: var IdHTTP: TIdHTTP; Html: String; Data: TStringList; begin ... Html := IdHTTP.GET('http://site.ru/page.html'); //В Html запишется html код страницы http://site.ru/page.html или Html := IdHTTP.POST('http://site.ru/page.php', Data); //В Html запишется ответ сервера, в Вашем случае {"action":"needLogin","success":true,"message" //Далее делаете Pos if Pos('{"action":"needLogin","success":true,"message"', Html) > 0 then