Привет уважаемые программеры возник вопрос я сделал программу которая отправляет почту сделал стандартно (TidSMTP, TidMessage) а вот никак не в состоянии понять как файлы прикреплять к мылу PHP: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP; type TForm1 = class(TForm) IdSMTP1: TIdSMTP; IdMessage1: TIdMessage; Button1: TButton; procedure Button1Click(Sender: TObject); procedure IdMessage1CreateAttachment(const AMsg: TIdMessage; const AHeaders: TStrings; var AAttachment: TIdAttachment); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IdSMTP1.Connect; IdSMTP1.Send(idMessage1); IdSMTP1.Disconnect; end; procedure TForm1.IdMessage1CreateAttachment(const AMsg: TIdMessage; const AHeaders: TStrings; var AAttachment: TIdAttachment); begin end; end. Всё содержимое я заполнил в компонентах так меньше мучиться думаю тоесть idsmtp.Host, idsmtp.port, idsmtp.username я нестал писать делал по статьям в интернете всё сделал письма на ура отправляет а вот с файлами проблема Несмог вот это реализовать куда коды эти не пихал непомогало подскажите как или правильно их вставить или может подругому как то можно прицепить файл ? буду признателен повышу репутацию
самый просто способ - юзаю встроенные функции 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); - закрытие файла
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 чем ты связывал при создании твоего локап поля
#Wolf#то что ты написал, только упорядочивает массив, метод если мне не изменят память называеться метод пузыря _http://www.vzmakh.ru/info/pascal/modules/page14.html вот тут почитай зы чуствуеться в коде какаято кривоватость ззы есть такая ветка называеться студентам с лабораторными сюда
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 до 10 Code: For i:=1 to 10 do begin a:=m[i]; b:=m[i+1]; <- на 10 шаге ты провериш 11-й элемент массива, хотя максимальный - 10 Так что счетчик делай до 9. В крупных проектах такое может быть смертельно )
чуть исправил (имхо так лучше): 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.
2 s0l_ir0n а я и не говорил что тупой или слепой. Это ошибка большей половины новечков. А я просто указал на её наличие )
млин.... завал у мну с паскалям..хех...хелп ми...у мну на зачетную работу над пару задачек решить...если можети...пжалуйста: 1) Получите 36 случайных, целых чисел и запишите их в файл. Чтением из файла сформируйте матрицу размером 6*6. Переформируйте матрицу на '0' и '1' (положительные - 0, отрицательные - 1) и определите номер строки с наибольшим количеством '0'. 2) сформируйте одномерный массив из 50 случайных, целых чисел в диапазоне от 0 до 100. Элементы массива уменьшить на величину среднеарефметического значения и подсчитать число отрицательных элементов. буду вам очень благодарен...Заранее спасибо, кто поможет
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; Сорри если будут ошибки, компилятора с собой нет.