montada gafsa
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS CHATTING\U_chat.pas

اذهب الى الأسفل

CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS        CHATTING\U_chat.pas Empty CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS CHATTINGU_chat.pas

مُساهمة  mehdia الخميس 12 نوفمبر 2009 - 11:34


UNIT U_chat;


INTERFACE

uses
SysUtils,crt;

const nb_max_client =20;
nb_max_msg =100;

type T_Client = record
pseudo : string[5];
mdp : string[4];
end{record};

T_message = record
pseudo : string[5];
msg : string[49];
heure : tdatetime;
color : byte;
end{record};

fichier_client = file of T_Client;
fichier_msg = file of T_message;
T_tab_client = array[0..nb_max_client] of T_Client;
T_tab_message = array[0..nb_max_msg] of T_message;
T_les_messages = record
nb_msg : integer;
les_messages : T_tab_message;
end{record};


var objet_client : fichier_client;
objet_msg : fichier_msg;

client : t_client;
msg : T_message;



procedure initialisation;
procedure ecrir_message(msg : T_message);
function fichier_en_tableau :t_les_messages;
procedure afficher_chat;
procedure saisir_message(var msg : T_message);
procedure menu;
procedure charger(longueur,positionx,positiony : integer);
procedure un_rectangle(x1,y1,x2,y2 : integer);
procedure efface_ecran;





implementation

procedure efface_ecran;
var j : byte;
begin

for j:= 0 to 80 do begin
gotoxy(0,j);writeln(' ');
gotoxy(1,1);
end {for};
end{efface_ecran};

procedure charger(longueur,positionx,positiony: integer);
var i,pourcent : integer;
begin

gotoxy(positionx,positiony-1);write('Chargement...');
gotoxy(positionx,positiony);write(#201);
for i:=positionx to longueur do begin
gotoxy(i+1,positiony);write(#205);
end {for};
gotoxy(longueur+1,positiony);write(#187);
gotoxy(longueur+1,positiony+1);write(#186);
gotoxy(positionx,positiony+1);write(#186);

for i:=positionx to longueur do begin
gotoxy(i+1,positiony+2);write(#205);
end {for};
gotoxy(positionx,positiony+2);write(#200);
gotoxy(longueur+1,positiony+2);write(#188);


for i:=1 to longueur-positionx-2 do begin
gotoxy(i+positionx+1,positiony+1);write(#219);
pourcent:=((i+positionx+1)*100 div (longueur-1));
gotoxy((longueur-positionx) div 2,positiony+1);write(pourcent,'%');
delay(100);
end;
gotoxy(positionx,positiony-1);write('Chargement termine !');

end{charger};

procedure un_rectangle(x1,y1,x2,y2 : integer);
type point = record
x : byte;
y : byte;
end {record};
var A,B : Point;
i : integer;

begin
A.x := x1;
A.y := y1;

B.x := x2;
B.y := y2;
//--------segment[AC]---------//
//au point A
gotoxy(A.x,A.y);write(#201);
//entre A et C de coordonnée (B.x , A.y)
for i:=A.x+1 to B.x-1 do begin
gotoxy(i,A.y);write(#205);
end{for};
//---------segment[CB]--------//
//au point C(B.x , A.y)
gotoxy(B.x,A.y);write(#187);
//entre C et B
for i:=A.y+1 to B.y-1 do begin
gotoxy(B.x,i);write(#186);
end{for};
//---------segment[BD]--------//
//au point B(B.x , B.y)
gotoxy(B.x,B.y);write(#188);
//entre B et D
for i:=B.x-1 downto A.x+1 do begin
gotoxy(i,B.y);write(#205);
end{for};
//---------segment[DA]--------//
//au point D(A.x , B.y)
gotoxy(A.x,B.y);write(#200);
//entre D et A
for i:=B.y-1 downto A.y+1 do begin
gotoxy(A.x,i);write(#186);
end{for};
end {un_rectangle};




procedure initialisation;
begin
assign(objet_msg,'le_salon.jul');
assign(objet_client,'les_clients.jul');

rewrite(objet_client);
rewrite(objet_msg);

close(objet_client);
close(objet_msg);
end{initialisation};

procedure ecrir_message(msg : T_message);
begin
assign(objet_msg,'le_salon.jul');
reset(objet_msg);
seek(objet_msg,filesize(objet_msg));
write(objet_msg,msg);
close(objet_msg);

end{ecrir_message};

function fichier_en_tableau :t_les_messages;
var resultat : t_les_messages;
msg1 : T_message;
i : integer;
begin
assign(objet_msg,'le_salon.jul');
reset(objet_msg);
i:=0;
resultat.nb_msg:=0;
while not(eof(objet_msg)) do begin
seek(objet_msg,i);
read(objet_msg,msg1);
resultat.les_messages[i]:=msg1;
inc(resultat.nb_msg);
inc(i);

end{while};
fichier_en_tableau:=resultat;
close(objet_msg);

end{fichier_en_tableau};
procedure afficher_chat;
var tab_msg_recuperes:T_les_messages;
i,j : integer;
begin

clrscr;
clrscr;
repeat

j:=0;
tab_msg_recuperes:=fichier_en_tableau;
un_rectangle(10,5,80,30);


for i :=tab_msg_recuperes.nb_msg-20 to tab_msg_recuperes.nb_msg do begin
gotoxy(11,6+j);write(' ');
gotoxy(11,6+j);textcolor(tab_msg_recuperes.les_messages[i].color);write(timetostr(tab_msg_recuperes.les_messages[i].heure),
':',tab_msg_recuperes.les_messages[i].pseudo,'> ',
tab_msg_recuperes.les_messages[i].msg);
inc(j);
textcolor(15);
end{for };
delay(1000);
until TRUE<>TRUE;
end{afficher_chat};

procedure saisir_message(var msg : T_message);

var
i : byte;
begin
clrscr ;
clrscr ;
write('pseudo : ');readln(msg.pseudo);
for i:=1 to 14 do begin
gotoxy(20,4+i);textcolor(i);writeln(i,' jules');
end ;
textcolor(15);
writeln('quelle couleur voulez-vous utiliser dans le salon [1 à 14]? : ');
readln(msg.color);
writeln;
write('Ecrivez oter message ''Q''pour quitter bon chat ! ');


repeat
un_rectangle(10,30,60,40);
gotoxy(11,31);write(' ');
gotoxy(11,31);readln(msg.msg);
msg.heure:=time;
if (msg.msg <> 'q') and (msg.msg <> 'Q') then begin
ecrir_message(msg);
end else begin
msg.heure:=time;
msg.msg:='A QUITTE LE SALON';
msg.color:=15;
ecrir_message(msg);
end{if};
until msg.msg='A QUITTE LE SALON';
end;

procedure menu;
label la;
var reponse : char;
begin
efface_ecran ;
un_rectangle(5,5,40,20);
un_rectangle(5,7,40,20);
gotoxy(8,6);write('MENU PRINCIPAL');
gotoxy(7,9);write('1 - CHAT ');
gotoxy(7,11);write('2 - AFFICHER LE SALON ');
gotoxy(7,13);write('3 - QUITTER');
gotoxy(4,24);write('VOTRE CHOIX [1,2,3]');
la: reponse:=readkey;
case reponse of
'1' : saisir_message(msg);
'2' : afficher_chat;
'3' : exit;
else goto la ;
end {case};

end{MENU};


end.
mehdia
mehdia
المدير
المدير

عدد المساهمات : 178
تاريخ التسجيل : 21/08/2009
العمر : 36

https://gafsa.ahlamontada.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS        CHATTING\U_chat.pas Empty رد: CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS CHATTING\U_chat.pas

مُساهمة  mehdia الخميس 12 نوفمبر 2009 - 11:41

je suis désolé cet page n'est pas bien saisie
mehdia
mehdia
المدير
المدير

عدد المساهمات : 178
تاريخ التسجيل : 21/08/2009
العمر : 36

https://gafsa.ahlamontada.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى