[ 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. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    Всем здравствуйте! Есть пару вопросов, нуждаюсь в помощи: вообщем замучался думать и гадать как сделать так, что б при нажатии на кнопку пользователь переходил на форму оплаты вебмани, и сумма была бы 300 рублей, если сумма <300, или >300, возникала б надпись "блалаллла" и соответственно невозможность выполнить оплату

    пробывал, через html-форму, т.е.
    , где http://mysite.ru - html-форма, но не знаю как реализовать в ее коде условие что не больше, неменьше 300 р

    Вообщем прошу ваших мнений, намеков, предложений. Заранее спасибо.
     
  2. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    ALeXX&7, вы никак это сделаете, точнее сделаете - но будет бесполезным, почему? Потому что грамотный человек может подсмотреть какие пакеты программа шлет (это ведь пакеты на ВМ сервер (вм мерчант если не ошибаюсь)), а в пакет будет входить число 300 -> соответственно можно подменить это число и послать пакет но уже с другим числом (т.е. не с 300).
    Если вы все еще хотите такое реализовать то объясняю:
    1. Смотрите как прикрутить кошель к ВМ мерчанту (ну и естественно прикручиваете).
    2. Как прикрутили кошель - берем в руки сниффер и смотрим какие отправляются на url:
    https://merchant.webmoney.ru/lmi/SignedLoginFormNewWC.asp
    (это страница оплаты)
    3. Как узнали пакет отправляем его из своей программы
    3.1 Отправление делается как правило с помощью библиотеки winsock. (TCP, примеры вы можете найти на просторах сети)
    3.2 Описание по winsock хорошо описывается в книжка М. Фленова ("delphi в шутку и в серьез" вроде как в этой книге хорошо описан winsock)
    4. Как отправили - парсим каптчу и выводим на форму (в компонент TImage)
    5. Далее нажимаем кнопку "Далее" (что на странице мерчанта) и снова узнаем какие пакетные данные отправляются и куда (и естественно как узнали - пишем в delphi чтобы отправлялись эти данные пакета). И так проделываем операции до тех пор, пока деньги не дойдут до вм кошеля.

    В двух словах:
    Смотрим пакеты которые передаются на сервер WM, и эмулируем эти пакеты на программном ЯП
     
    #7462 wolmer, 24 Dec 2010
    Last edited: 24 Dec 2010
  3. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Всем привет. Может кто-нибудь следующий код переписать под паскаль, а то я в яве совсем не шарю, заранее спасибо.
    Code:
    package ru.spiral;
    
    public class Spiral {
    	
    	public static int[] init(int length) {
    		int[] mass = new int[length];
    		for (int i = 0; i < mass.length; i++) {
    			mass[i] = i;
    		}
    		return mass;
    	}
    		
    	public static void print(int[][] spiral) {		
    		for (int i = 0; i < spiral.length; i++) {			
    			for (int j = 0; j < spiral[0].length; j++) {
    				System.out.print(spiral[i][j] + "\t");
    			}
    			System.out.println();
    		}
    		
    	}
    	
    	public static int oneRound(int[] mass, int[][] res, int l, int s, int k) {					
    		
    		/* Готовим 1-ю строку */
    		for (int j = s; j < l - s - 1; j++) {			
    			res[s][j] = mass[k];		
    			k++;
    		}
    		
    		/* Готовим правый столбец */
    		for (int j = s; j < l - s - 1; j++) {				
    			res[j][l-1-s] = mass[k];		
    			k++;
    		}
    		
    		/* Готовим последнюю строку */
    		for (int j = l - 1 - s; j > s; j--) {			
    			res[l-1-s][j] = mass[k];
    			k++;
    		}
    		
    		/* Готовим левый столбец */
    		for (int j = l - 1 - s; j > s; j--) {			
    			res[j][s] = mass[k];
    			k++;
    		}
    		return k;
    	}
    	
    	public static void main(String[] args) {
    		int[] mass = Spiral.init(100);
    		
    		int l = (int)Math.sqrt(mass.length);
    		int[][] res = new int[l][l];
    		
    		int k = 0;
    		int shift = 0;
    		while (l - 2 * shift > 0) {			
    			k = Spiral.oneRound(mass, res, l, shift, k);
    			shift++;			
    		}
    		if ((l % 2) != 0) {
    			shift --;
    			res[shift][shift] = mass[k];
    		}
    		Spiral.print(res);
    	}
    
    }
     
  4. ALeXX&7

    ALeXX&7 New Member

    Joined:
    4 Oct 2010
    Messages:
    50
    Likes Received:
    1
    Reputations:
    0
    спасибо за совет... буду дальше пытаться...
    Есть ещё вопрос как реализовать следующее:
    есть прога, как можно осуществить чтоб данные в проге обновлялись, только у тех, кто произвел оплату?
     
  5. Voland-791

    Voland-791 Member

    Joined:
    1 May 2009
    Messages:
    163
    Likes Received:
    13
    Reputations:
    5
    Как через post в на MSPX сделать клик? на php,html без проблем бы вышло.

    PHP:
       <input name="ctl06$CompositeNumberTextBoxtype="text" id="ctl06_CompositeNumberTextBox" style="display: none;" />

                       </
    div>

                        

                        <
    div id="ctl06_divTerms" class="terms" style="display:none;">

                            <
    div class="check">

                                <
    input id="ctl06_AgreementCheck" type="checkbox" name="ctl06$AgreementCheckchecked="checked" />                

                            </
    div>

                            <
    div class="acceptTerms">Установите флажокчтобы подтвердить свое согласие с <a href="http://www.microsoft.com/info/cpyright.mspx" target="_blank" class="orange">условиями использования.</a></div>

                        </
    div>



    <
    div id="ctl06_btnSubmit" class="btnSubmit" onClick="JavaScript:if(DCSext.wtNavigation != null){DCSext.wtNavigation=null;};">

    <
    div class="globalButtonLeft"></div>

    <
    div class="globalButton"><a id="ctl06_SendButton" title="Отправить" class="btnSubmitC" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl06$SendButton&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">Отправить</a></div>

    <
    div class="globalButtonRight"></div></div>
     
  6. P.A.U.L

    P.A.U.L New Member

    Joined:
    12 Aug 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Isaev, real.
     
  7. madreason

    madreason New Member

    Joined:
    19 Oct 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    delphi & visio

    Подскажите пожалуйста ссылки на примеры работы с визио из делфи. добавить элементы, установить связи. и произвести обратную операцию, преобразовать документ в структуру данных.
     
  8. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    подскажите как можно в лист боксе удалить одинаковые элементы по нажатии на кнопку?
     
  9. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
    в мемо несколько строк вида:
    Потом делаю:
    ShowMessage(form1.mmo1.Lines[3]);
    и он выводит 0 в чем проблема
     
  10. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    ты забыл букву 'e' в имени memo1
     
  11. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    Вот в этом и косяк, тогда делай так
    canvas.Ellipse(Round(400+40*(x-R)),Round(400+40*(y-R)),Round(400+40*(x+R)),Round(400+40*(y+R)));
     
  12. kriperS

    kriperS New Member

    Joined:
    6 Sep 2010
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    составить программу подсчета количества нечетных цифр данного натурального числа. (паскаль)
     
  13. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    Помогите авторизоваться на сайте: h on-void.ru
    Всего три поля login,pass,sumbit
    Отправляю POST запрос и тишина... даже куки пробовал сохранять все равно никак.
    Фиг знает где ошибка.

    Вот сама авторизация


    Code:
    LoginInfo := TStringList.Create;
    Response := TStringList.Create;
    try
    LoginInfo.Add('login=login');
    LoginInfo.Add('pass=pass');
    LoginInfo.Add('sumbit=Login');
    Response.Text := IdHTTP1.Post('http://www.hon-void.ru/?auth',LoginInfo);
    if Pos('logout',Response.Text)>0 then
    memo2.Lines.Add('true)')
    else
    memo2.Lines.Add('false')
    finally
    LoginInfo.Free;
    Все разобрался. Неправильное название поля отправлял.
     
    #7473 Nizhegorodets, 28 Dec 2010
    Last edited: 29 Dec 2010
  14. Isaev

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

    Joined:
    25 Jul 2007
    Messages:
    120
    Likes Received:
    19
    Reputations:
    6
    Или дели на 10 или сначала переводи в строку, потом её обходи
    для чётности Odd();
     
  15. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    где скачать норм инди? а то скачал штук 5, и не одна нормально не становится. все делаю по инструкции
     
  16. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    199
    Likes Received:
    12
    Reputations:
    1
    НА офф сайте качаешь сурсы, компилишь - ставишь.
    Компилим там:
    -System
    -Protocols
    -Core
    -SuperCore
    Ставим так:
    -Core
    -Protocols

    P.S. Это не технология установки, а то как поставил я.
     
  17. MaTpOc

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

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    помогите прикрутить вывод дня недели

    PHP:
    Program data_;
    type
    mes
    = (janfebmaraprmayjunjulaugsepoctnovdec);
    day=1..31;
    year=1900..2010;
    var
    day;
    mеs;
    year;
    1..12;
    BEGIN
      Write
    (‘введите дату D,N,G’);  readln(d,n.g);
       Case 
    n of
           1
    :m:=jan;
           
    2:m:=feb;
           
    3:m:=mar;
           
    4:m:=apr;
           
    5:m:=may;
           
    6:m:=jun;
           
    7:m:=jul;
           
    8:m:=aug;
           
    9:m:=sep;
           
    10:m:=oct;
           
    11:m:=nov;
           
    12:m:=dec;
    end;
       Case 
    m of
    Jan
    marmayjulaugoct:
                    If 
    d=31 then
                        begin
                            d
    :=1;  m:=succ(m)
                        
    end
                               
    else
                            
    inc(d);
    aprjunsepnov:
    f d=30 then
                        begin
                            d
    :=1;  m:=succ(m)
                        
    end
                               
    else
                            
    inc(d);
    dec
    If 
    d=31 then
                        begin
                            d
    :=1;  m:=jan;  inc(g)
                        
    end
                               
    else
                            
    inc(d);
    feb:
    if ((
    d=28) and (not((g mod 400=0) or (g mod 4=0) and (g mod 100<>0)))
    or (
    d=29then
                        begin
                            d
    :=1;  m:=mar
                        
    end
                               
    else
                            
    inc(d);
    end;        {case}
       
    writeln(‘дата следующего дня);
        
    write(d:2);
       Case 
    m of
           jan 
    write(‘января’);
           
    feb write(‘февраля’);        
           
    mar write(‘марта’);
           
    apr write(‘апреля’);
           
    may write(‘мая’);
          
    jun :write(‘июня’);
           
    ju1 wгite‘июля‘ ) ;
           
    aug wгitе('августа' ) ;
           
    sep :write('сентября');
         
    oct write('октября');
         
    nov write('ноября');
         
    dec write('декабря');
      
    end;
       
    write(g:5'  года'
    END.

     
  18. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    MaTpOc, вот основная функция, полученная из твоей программы:

    PHP:
    type
    mes
    = (janfebmaraprmayjunjulaugsepoctnovdec);
    day=1..31;
    year=1900..2010;

    function 
    Data_(D_dayN_IntegerG_year): String;
    var
    day;
    mes;
    year;
    1..12;
    begin
       d 
    := D_;
       
    := N_;
       
    := G_;
       Case 
    n of
           1
    :m:=jan;
           
    2:m:=feb
           
    3:m:=mar;
           
    4:m:=apr
           
    5:m:=may;
           
    6:m:=jun
           
    7:m:=jul
           
    8:m:=aug
           
    9:m:=sep
           
    10:m:=oct
           
    11:m:=nov
           
    12:m:=dec
    end;
       Case 
    m of 
    Jan
    marmayjulaugoct
                    If 
    d=31 then 
                        begin 
                            d
    :=1;  m:=succ(m
                        
    end 
                               
    else 
                            
    inc(d); 
    aprjunsepnov:
    if 
    d=30 then
                        begin 
                            d
    :=1;  m:=succ(m
                        
    end 
                               
    else 
                            
    inc(d); 
    dec:  
    If 
    d=31 then 
                        begin 
                            d
    :=1;  m:=jan;  inc(g)
                        
    end 
                               
    else 
                            
    inc(d); 
    feb
    if ((
    d=28) and (not((g mod 400=0) or (g mod 4=0) and (g mod 100<>0))) 
    or (
    d=29)) then
                        begin 
                            d
    :=1;  m:=mar;  
                        
    end 
                               
    else
                            
    inc(d); 
    end;
       
    Result := 'дата следующего дня:' #13#10;
       
    Result := Result IntToStr(d);
       Case 
    m of
           jan 
    Result := Result ' января';
           
    feb Result := Result ' февраля';
           
    mar Result := Result ' марта';
           
    apr Result := Result ' апреля';
           
    may Result := Result ' мая';
           
    jun Result := Result ' июня';
           
    jul Result := Result ' июля';
           
    aug Result := Result ' августа';
           
    sep Result := Result ' сентября';
           
    oct Result := Result ' октября';
           
    nov Result := Result ' ноября';
           
    dec Result := Result ' декабря';
      
    end;
      
    Result := Result ' ' IntToStr(g) + ' года';
    end;
    Пример вызова в программе:
    PHP:
    MessageBox(HandlePChar(Data_(31122010)), PChar('Message'), MB_OK MB_ICONINFORMATION);
    Хоть работает правильно, но оформлено плохо, так что если хочешь, - перепиши.
     
  19. dotMX

    dotMX New Member

    Joined:
    4 Dec 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, может быть кто-нибудь подскажет как объеденить два аудио-файла(мп3\wav) в один последовательный файл. Спасибо, надеюсь доходчиво объяснил проблему
     
  20. mozgK2

    mozgK2 New Member

    Joined:
    9 Sep 2010
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Обязательно реализовать на Delphi? Может Nero или что - то в этом роде? И что ты вообще представляешь под словом "объеденить", одновременную работу?
     
Thread Status:
Not open for further replies.