PDA

View Full Version : فارسی نوشتن در داس



cd2007
دوشنبه 30 اردیبهشت 1387, 14:59 عصر
من در زبان برنامه نویسی C فارسی می نویسم(با فارسی ساز سپند) ولی وقتی نمایش می ده خر چنگی نشون می ده ....چه کار باید کرد.

emad_67
دوشنبه 30 اردیبهشت 1387, 23:31 عصر
در همین بخش جستجو کن قبلا 2-3 موردی گفته شده.

amir_cpp
چهارشنبه 01 خرداد 1387, 21:04 عصر
سلام، من چند تا فونت فارسی دارم. ببین به دردت می خوره یا نه، exe هستن باید اجراشون کنی تو داس تا صفحه کلید فارسی بشه!
سپند به درد نخوره.

cd2007
جمعه 03 خرداد 1387, 11:35 صبح
سلام، من چند تا فونت فارسی دارم. ببین به دردت می خوره یا نه، exe هستن باید اجراشون کنی تو داس تا صفحه کلید فارسی بشه!
سپند به درد نخوره.
سلام. من اجرا مي كنم اما فارسي نمي نويسد؟

amir_cpp
دوشنبه 06 خرداد 1387, 11:31 صبح
اوه، معذرت می خوام!
شما باید font4.com رو اجرا کنید، بعد فارسی بنویسید. اون یکیا فقط ظاهر فونت هارو تغییر میدن، نمی تونین باهاشون فارسی بنویسید.
اما یه مشکلی هست، اونم اینه که موقع نوشتن تمام حروف رو بر عکس می بینین، یعنی باید جمله های فارسیتون رو از آخر به اول بنویسید.
ما هم این مشکلو تو هنرستان داشتیم، اما با یکم کار تونیستیم یه فارسی ساز بنویسیم، به زبان Pascal.
اگه بخواین می زارم اینجا، اما باید تبدیلش کنید به زبان C++.

alinaghiha
دوشنبه 06 خرداد 1387, 16:07 عصر
براي فارسي نوشتن در داس نرم افزاري به نام سپند يا Vfarsi رو بايد گير بياري
بعد از اجاي اين فايلها شما ميتوني فارسي بنويسي
بعد از اجراي سپند با زدن هر دو شيفت فارسي ميشه

man4toman
سه شنبه 07 خرداد 1387, 09:30 صبح
اوه، معذرت می خوام!
شما باید font4.com رو اجرا کنید، بعد فارسی بنویسید. اون یکیا فقط ظاهر فونت هارو تغییر میدن، نمی تونین باهاشون فارسی بنویسید.
اما یه مشکلی هست، اونم اینه که موقع نوشتن تمام حروف رو بر عکس می بینین، یعنی باید جمله های فارسیتون رو از آخر به اول بنویسید.
ما هم این مشکلو تو هنرستان داشتیم، اما با یکم کار تونیستیم یه فارسی ساز بنویسیم، به زبان Pascal.
اگه بخواین می زارم اینجا، اما باید تبدیلش کنید به زبان C++.
سلام
دوست عزیز سورس رو قرار بدین تا ببینیم چیکار میتونیم بکنیم:لبخندساده:

SMRAH1
شنبه 11 خرداد 1387, 16:59 عصر
سلام
براي اينکه يک فارسي ساز در DOS تحت Win بتونه کارش رو درست انجام بده بايد حتما به حالت FullScreen رفته باشيد(يعني کاملا به محيط Text وارد بشه و نه توي يک پنجره تحت ويندوز کار کنه) .براي اينکار در گام اول يک فايل bat بساز که توي اون اول يک فارسي ساز رو اجرا کنه و بعد برنامه مورد نظر شما رو. در گام دوم يک ShortCut از فايل Bat بساز (حتي کنار خوده فايل bat هم ميتوني بسازي) و در Properties اون ShortCut دنبال عبارت FullScreen بگرد و انتخابش کن (جاش بسته به نوع ShortCut فايل bat که مي تونه pif يا lnk باشه متفاوته ولي حتما هست!!!).بعد هم اين ShortCut رو اجرا کن.
موفق باشي

amir_cpp
یک شنبه 12 خرداد 1387, 21:43 عصر
سلام!
خوب این هم از فارسی ساز، بفرمایید:
البته حتما یکم مشکل داره، یعنی باید تموم رویه ها رو هم اضافه کنم، نگران نباشید...


procedure read1(var name:string;j,y2,y1:shortint;t,b:shortint);
var
ch,c : char;
str1 : string;
label
del,start,fin,cod,lpos;
begin
name:='';
str1:='';
i:=y1;
tgw(b,t+16,i,j,'_');
repeat
tgw(b,t+16,i,j,'_');
cod :
tgw(b,t+16,i,j,'_');
if i=y2 then
begin
repeat
ch:=readkey;
if ch=esc then name:='Vahid';
if ch=ent then goto fin;
if ch=#8 then goto del;
until (ch=ent)or(ch=esc)or(ch=#8);
end;
c:=ch;
ch:=readkey;
if ch=esc then
begin
for i:=y2 to y1 do
tgw(b,b,i,j,' ');
name:='Vahid';
goto fin;
end;
if ch=chr(0) then
begin
ch:=readkey;
goto cod;
end;
start:
if ord(ch)>=32 then
begin
if ch='_' then ch:='‹';
if ch='`' then ch:='•';
if ch='~' then ch:='”';
if ch='\' then ch:='¦';
if ch='|' then ch:='چ';
if ch='q' then ch:='®';
if ch='Q' then ch:='­';
if ch='w' then ch:='¬';
if ch='W' then ch:='«';
if ch='e' then ch:='™';
if ch='E' then ch:='ک';
if ch='r' then ch:='ى';
if ch='R' then ch:='ë';
if ch='t' then ch:='ê';
if ch='T' then ch:='é';
if ch='y' then ch:='è';
if ch='Y' then ch:='ç';
if ch='u' then ch:='ن';
if ch='U' then ch:='م';
if ch='i' then ch:='û';
if ch='I' then ch:='ù';
if ch='o' then ch:='،';
if ch='O' then ch:=' ';
if ch='p' then ch:='ں';
if ch='P' then ch:='‍';
if ch='[' then ch:='›';
if ch='{' then ch:='ڑ';
if ch=']' then ch:='‌';
if ch='}' then ch:='œ';
if ch='a' then ch:='ھ';
if ch='A' then ch:='©';
if ch='s' then ch:='¨';
if ch='S' then ch:='§';
if ch='d' then ch:='‏';
if ch='D' then ch:='ü';
if ch='f' then ch:='“';
if ch='F' then ch:='’';
if ch='g' then ch:='َ';
if ch='G' then ch:='ٌ';
if ch='h' then ch:='گ';
if ch='H' then ch:='‘';
if ch='j' then ch:='—';
if ch='J' then ch:='–';
if ch='k' then ch:='÷';
if ch='K' then ch:='ِ';
if ch='l' then ch:='ُ';
if ch='L' then ch:='ô';
if ch=';' then ch:='î';
if ch=':' then ch:='ي';
if ch=chr(39) then ch:='ً';
if ch='"' then ch:='ï';
if ch='z' then ch:='à';
if ch='Z' then ch:='â';
if ch='x' then ch:='¯';
if ch='X' then ch:='ل';
if ch='c' then ch:='¥';
if ch='C' then ch:='و';
if ch='v' then ch:='¤';
if ch='V' then ch:='ه';
if ch='b' then ch:='£';
if ch='B' then ch:='£';
if ch='n' then ch:='¢';
if ch='N' then ch:='¢';
if ch='m' then ch:='ژ';
if ch='M' then ch:='ڈ';
if ch=',' then ch:='ّ';
if ch='<' then ch:='ّ';
if ch='.' then ch:='.';
if ch='>' then ch:='.';
if ch='/' then ch:='Œ';
if ch='?' then ch:='Œ';
if (ch=spac)and((c='“')or(c='•')or(c='—')or(c=' ™')or(c='›')or(c='‌')or
(c='ں')or(c='،')or(c='¨')or(c='ھ')or(c='¬')or (c='®')or(c='ê')or(c='ى')or
(c='î')or(c='ً')or(c='ُ')or(c='÷')) then
begin
ch:=chr(ord(c)-1);
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if ((ch='گ')or(ch='‘'))and((c='َ')or(c='ٌ')) then
begin
ch:='ٍ';
tgw(b,t,i+1,j,ch);
tgw(b,b,i-1,j,'_');
delete(name,1,1);
name:=ch+name;
goto cod;
end;
if (ch=spac)and(c='ژ') then
begin
ch:='ڈ';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
goto cod;
end;
if (ch=spac)and(c='ن') then
begin
ch:='ل';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='م') then
begin
ch:='â';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='è') then
begin
ch:='ه';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='ç') then
begin
ch:='و';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='َ') then
begin
ch:='ٌ';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='û') then
begin
ch:='ù';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch=spac)and(c='‏') then
begin
ch:='ü';
tgw(b,t,i+1,j,ch);
i:=i-1;
tgw(b,b,i+1,j,'_');
delete(name,1,1);
name:=ch+name;
insert(' ',name,1);
goto cod;
end;
if (ch='گ')and((c='“')or(c='•')or(c='—')or(c=' ™')or(c='›')or
(c='‌')or(c='ں')or(c='،')or(c='¨')or(c='ھ')o r(c='¬')or(c='®')or
(c='¯')or(c='à')or(c='م')or(c='ن')or(c='ç')or (c='è')or(c='ê')or
(c='ى')or(c='î')or(c='ً')or(c='َ')or(c='ُ')or (c='÷')or(c='û')or
(c='‏')or(c='ژ')or(c='‹'))then
begin
ch:='‘';
i:=i-1;
tgw(b,t,i+1,j,ch);
name:=ch+name;
goto cod;
end;
if (ch='ن')and((c='“')or(c='•')or(c='—')or(c=' ™')or(c='›')or
(c='‌')or(c='ں')or(c='،')or(c='¨')or(c='ھ')o r(c='¬')or(c='®')or
(c='¯')or(c='à')or(c='م')or(c='ن')or(c='ç')or (c='è')or(c='ê')or
(c='ى')or(c='î')or(c='ً')or(c='َ')or(c='ُ')or (c='÷')or(c='û')or
(c='‏')or(c='ژ'))then
begin
ch:='م';
i:=i-1;
tgw(b,t,i+1,j,ch);
name:=ch+name;
goto cod;
end;
if (ch='è')and((c='“')or(c='•')or(c='—')or(c=' ™')or(c='›')or
(c='‌')or(c='ں')or(c='،')or(c='¨')or(c='ھ')o r(c='¬')or(c='®')or
(c='¯')or(c='à')or(c='م')or(c='ن')or(c='ç')or (c='è')or(c='ê')or
(c='ى')or(c='î')or(c='ً')or(c='َ')or(c='ُ')or (c='÷')or(c='û')or
(c='‏')or(c='ژ'))then
begin
ch:='ç';
i:=i-1;
tgw(b,t,i+1,j,ch);
name:=ch+name;
goto cod;
end;
name:=ch+name;
tgw(b,t,i,j,ch);
i:=i-1;
end
else
begin
del :
if ch=#8 then
begin
if i=y1 then
begin
repeat
ch:=readkey;
if ch=esc then
begin
for i:=y2 to y1 do
tgw(b,b,i,j,' ');
name:='Vahid';
goto fin;
end;
if ch<>#8 then goto start;
until ch<>#8;
end;
i:=i+1;
tgw(b,b,i-1,j,' ');
delete(name,1,1);
end;
if ch=#8 then
begin
tgw(b,b,i,j,'');
end;
end;
if ch=ent then
begin
tgw(b,b,i,j,' ');
break;
end;
lpos:
if i=y2 then
begin
repeat
tgw(b,t+16,i,j,'_');
ch:=readkey;
if ch=#8 then goto del;
if ch=esc then
begin
for i:=y2 to y1 do
tgw(b,b,i,j,' ');
name:='Vahid';
goto fin;
end;
until (ch=ent)or(ch=esc);
end;
until i=y2;
fin:
tgw(b,b,i,j,'_');
end;

amir_cpp
یک شنبه 12 خرداد 1387, 21:51 عصر
خوب، این هم بقیش، البته اینارو باید قبل از بالایی بنویسین:


const altx=#45;
esc=#27;
ent=#13;
spac=#32;
null=#0;
left=#75;
right=#77;
up=#72;
down=#80;
tab=#9;
backspace=#8;
PROCEDURE TGW(BK,TC,X,Y:SHORTINT;S:STRING);
BEGIN
COLXY(X,Y,TC,BK);
WRITE(S);
END;


فقط یادتون باشه برای فارسی نوشتن باید یکی از اون فونت ها که در پست قبلی به صورت زیپ گذاشتم، اجرا کنید، در غیر این صورت یه مشت مزخرف رو صفحه نمایش می بینین، خودتون که می دونین.
باز هم اگر اشکالی داشت، اینجا بگین حلش کنم.
فعلا خداحافظ.