[ 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. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Привет уважаемые программеры возник вопрос я сделал программу которая отправляет почту сделал стандартно (TidSMTP, TidMessage) а вот никак не в состоянии понять как файлы прикреплять к мылу

    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsIdMessageIdBaseComponentIdComponentIdTCPConnection,
      
    IdTCPClientIdExplicitTLSClientServerBaseIdMessageClientIdSMTPBase,
      
    IdSMTP;

    type
      TForm1 
    = class(TForm)
        
    IdSMTP1TIdSMTP;
        
    IdMessage1TIdMessage;
        
    Button1TButton;
        
    procedure Button1Click(SenderTObject);
        
    procedure IdMessage1CreateAttachment(const AMsgTIdMessage;
          const 
    AHeadersTStrings; var AAttachmentTIdAttachment);
      private
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form1TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(SenderTObject);
    begin
    IdSMTP1
    .Connect;
    IdSMTP1.Send(idMessage1);
    IdSMTP1.Disconnect;

    end;

    procedure TForm1.IdMessage1CreateAttachment(const AMsgTIdMessage;
      const 
    AHeadersTStrings; var AAttachmentTIdAttachment);
    begin

    end
    ;

    end.
    Всё содержимое я заполнил в компонентах так меньше мучиться думаю тоесть idsmtp.Host, idsmtp.port, idsmtp.username я нестал писать делал по статьям в интернете всё сделал письма на ура отправляет а вот с файлами проблема

    Несмог вот это реализовать куда коды эти не пихал непомогало
    подскажите как или правильно их вставить или может подругому как то можно прицепить файл ? буду признателен повышу репутацию
     
  2. Plaf-di

    Plaf-di New Member

    Joined:
    23 Mar 2009
    Messages:
    10
    Likes Received:
    4
    Reputations:
    -11
    как обролтиться к файлу на винте??
     
    1 person likes this.
  3. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Только матом иначе нельзя
     
    2 people like this.
  4. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    самый просто способ - юзаю встроенные функции
    Code:
    var
    f:textfile;
    begin
     assignfile(f,'filename.txt');
     reset(f); - открывает для чтения
     rewrite(f); - создание / перезапись
     append(f); - дописываение в конец
     write(f,"helloFFF"); записать стркоу в файл. в конце будет
     writeln(f,"helloFFF"); записать стркоу в файл. в конце буде #13#10
     readln(f,s) - считать строку из файла
    
     closefile(f); - закрытие файла
    
    
     
    1 person likes this.
  5. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Пуск -> Выполнить. В появившемся окошке путь к файлу :(
     
  6. LEE_ROY

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

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    hxxp://wasm.ru/article.php?article=lockfileswork не делфи, но код понятен имхо
     
  7. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    Zitt, кидай на форму ADOQuery, в свойство SQL записывай
    Select t1.*, t2.name as Name
    from t1,t2
    where t1.name_id=t2.id
    order by name
    где t1 твоя исходная таблица, t2-таблица из кот ты смотришь значения локап поля,
    t1.name_id и t2.id чем ты связывал при создании твоего локап поля
     
    #3207 RumShun, 21 Apr 2009
    Last edited: 21 Apr 2009
  8. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    вот так: xDD
    Code:
    echo Hi, Mr. File, can I speak with you? >> File
    :D
     
    2 people like this.
  9. RumShun

    RumShun Member

    Joined:
    27 Oct 2008
    Messages:
    283
    Likes Received:
    75
    Reputations:
    6
    #Wolf#то что ты написал, только упорядочивает массив, метод если мне не изменят память называеться метод пузыря
    _http://www.vzmakh.ru/info/pascal/modules/page14.html вот тут почитай
    зы чуствуеться в коде какаято кривоватость
    ззы есть такая ветка называеться студентам с лабораторными сюда
     
    #3209 RumShun, 21 Apr 2009
    Last edited: 21 Apr 2009
    1 person likes this.
  10. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    Code:
    program Project1;
    
    const
    m:array[1..10] of integer=(3,5,8,1,9,4,5,2,1,2);
    var
    i:integer;
    a,b:integer;
    found:integer;
    fsum:integer;
    begin
    fsum:=0;
    found:=0;
    For i:=1 to 10 do begin
     a:=m[i];
     b:=m[i+1];
     If a=b-1
     Then begin
            if fsum=0
            then begin fsum:=a+b;
                       found:=i;
                       end
            else
                if a+b<fsum
                then begin
                found:=i;
                fsum:=a+b;
                end;
      end;
    end;
    Writeln('номер первого из двух последовательных элементов в целочисленном массиве из 10 элементов, сумма которых минимальна:',found);
    Writeln('сумма последовательных минимальных элементов:',fsum);
    readln;
    end.
    
    Действительно говно =/
     
    1 person likes this.
  11. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    ппц, с таким вот кодингом кодить дрова - бедная винда былабы.
    массив от 1 до 10
    Code:
    For i:=1 to 10 do
     begin
      a:=m[i];
      b:=m[i+1]; <- на 10 шаге ты провериш 11-й элемент массива, хотя максимальный - 10
    
    Так что счетчик делай до 9.
    В крупных проектах такое может быть смертельно )
     
    1 person likes this.
  12. Plaf-di

    Plaf-di New Member

    Joined:
    23 Mar 2009
    Messages:
    10
    Likes Received:
    4
    Reputations:
    -11
    KaZ@NoVa в поскале когда пишешь прогу.
     
    1 person likes this.
  13. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    дадада, я тупой :D
    [/edited]и слепой, как оказалось :( [edited]
     
    #3213 s0l_ir0n, 21 Apr 2009
    Last edited: 21 Apr 2009
  14. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    чуть исправил (имхо так лучше):
    Code:
    program ZZZ1;
    uses crt;
    const L=10;
    var m:array[1..L]of integer;
    i,a,b,found,fsum:integer;
    begin
    clrscr;
    randomize;
    write(' Massiv:');
    for i:=1 to L do begin
    m[i]:=random(7);
    write(' ',m[i]);
    end;
    writeln;
    fsum:=0;
    found:=0;
    for i:=1 to L-1 do begin
    a:=m[i];
    b:=m[i+1];
    if a=b-1 then begin
    if fsum=0 then begin
    fsum:=a+b;
    found:=i;
    end else
    if a+b<fsum
    then begin
    found:=i;
    fsum:=a+b;
    end;
    end;
    end;
    writeln(' Nomer pervogo iz dvuh posl. elementov s minim. summoj = ',found);
    writeln(' Minim. summa dvuh posl. elementov = ',fsum);
    readkey;
    end.
    ---------------------------------------------------------------
    Code:
    program ZZZ2;
    uses crt;
    const L=5; R=50;
    var a:array[1..L]of integer;
    b,i,h:integer;
    begin
    clrscr;
    randomize;
    write(' Massiv:');
    for i:=1 to L do begin
    {write('Vvedite  ',i,'-y element massiva : ');
    readln(a[i]);}
    a[i]:=random(R*2)-R;
    write(' ',a[i]);
    end;
    writeln;
    for h:=1 to L-1 do
    for i:=1 to L-h do
    if a[i]>a[i+1] then begin
    b:=a[i+1];
    a[i+1]:=a[i];
    a[i]:=b;
    end;
    write(' Uporyad.:');
    for i:=1 to L do write(' ',a[i]);
    writeln;
    readkey;
    end.
     
  15. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 s0l_ir0n а я и не говорил что тупой или слепой. Это ошибка большей половины новечков. А я просто указал на её наличие )
     
  16. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    Это не ты сказал, это я сказал и при том не без основательно :D
     
  17. Neorin

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

    Joined:
    30 Apr 2007
    Messages:
    48
    Likes Received:
    15
    Reputations:
    0
    млин.... завал у мну с паскалям..хех...хелп ми...у мну на зачетную работу над пару задачек решить...если можети...пжалуйста:
    1) Получите 36 случайных, целых чисел и запишите их в файл. Чтением из файла сформируйте матрицу размером 6*6. Переформируйте матрицу на '0' и '1' (положительные - 0, отрицательные - 1) и определите номер строки с наибольшим количеством '0'.
    2) сформируйте одномерный массив из 50 случайных, целых чисел в диапазоне от 0 до 100. Элементы массива уменьшить на величину среднеарефметического значения и подсчитать число отрицательных элементов.

    буду вам очень благодарен...Заранее спасибо, кто поможет
     
  18. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    1. Формируем так:
    Code:
    var
      f: textfile;
      s: string;
      i: Byte;
    begin
      AssignFile(f,'random.txt');
      Rewrite(f);
      Randomize;
      for i:=1 to 36 do
        WriteLn(f, IntToStr(Random(1000)));
      CloseFile(f);
    end;
    
    Решаем:

    Code:
    var
      f: textfile;
      s: string;
      i,j,max,num,tmp: Byte;
      k: Integer;
      matr : array [1..6,1..6] of Integer;
    begin
      AssignFile(f,'random.txt');
      Reset(f);
      num:=0;  max:=0;
      for i:=1 to 6 do
      begin
        tmp:=0;
        for j:=1 to 6 do
        begin
          ReadLn(f,s);
          k:=StrToInt(s):
          //Тут все делается за один проход массива, но если нужно сначала
          //сформировать, а потом добавить выдели следующее условие и подсчет в
    	  //отдельный цикл и K замени на matr[i,j]
          if k>0 then 
          begin
            matr[i,j]:=0;
            Inc(tmp);
          end else matr[i,j]:=1;
          matr[i,j]:=k;
        end;
        if tmp>max then
        begin
          max:=tmp;
          //Тут будет номер строки.
          num:=i;
        end;
      end;
      CloseFile(f);
    end;
    
    2) Решение
    Code:
    var
      i,sred,cnt: Integer;
      arr : array [1..50] of Byte;
    begin
      Randomize;
      for i:=1 to 50 do
      begin
        arr[i]:=Random(101);
        sred:=sred+arr[i];
      end;
      sred = sred div 50;
      cnt:=0; //Кол-во отрицательных
      for i:=1 to 50 do
      begin
        arr[i]:=arr[i]-sred;
        if arr[i]<0 then inc(cnt);
      end;
    end;
    
    Сорри если будут ошибки, компилятора с собой нет.
     
    #3218 art2222, 21 Apr 2009
    Last edited: 21 Apr 2009
    1 person likes this.
  19. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Как для Memo задать нужную кодировку?
     
  20. AlexTheC0d3r

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

    Joined:
    25 Jul 2008
    Messages:
    388
    Likes Received:
    179
    Reputations:
    18
    http://forum.developing.ru/showthread.php?t=16274

    2 _nic - попробуй
     
Thread Status:
Not open for further replies.