Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Komutlu Program
#1
İyi akşamlar. Delphi paclient.exe gibi bir exe yapmak istiyorum. Bazı işlemleri bir exe içerisinte toplayıp komutlar ile yaptırmak.

program xpaclient;

{$APPTYPE CONSOLE}

const
 ver = '2.0.1.7';

begin
 Writeln('X Platform Assistant Client version ' + ver);
 Writeln('Copyright © 2016-2017');
 Writeln('');
 Writeln('Usage: xpaclient [<options>]');
 Writeln('');
 Writeln('where <options> include:');
 Readln;
end.

Bu projeye örnek olarak bu komutları nasıl yaparım?
xpaclient.exe -help  
xpaclient.exe -deploy dir/values.xml res/values/strings.xml
xpaclient.exe -build -Carm android.pas
WWW
Cevapla
#2
Bu işler için ParamStr fonksiyonu kullanılıyormuş. Böyle bir örnek yaptım. Tek aklıma takılan birden fazla parametre bana gerekli olan kısmı nasıl ayıracağım. Yani bunu xpaclient.exe -b -Carm -Pandroid.pas olarak çağırımda bulundu diyelim. 1ci değer hangi işleme yapılacağını belirtenden sonra bana 2 ve 3 değerleri almam gerekiyor. O biraz aklıma takıldı.

program xpaclient;

{$mode objfpc}{$H+}

uses SysUtils;

const
 ver = '2.0.1.7';

var
 I: Integer;

procedure GetParams(x: Integer);
var
 S: String;
begin
 S := LowerCase(ParamStr(x));
 if S = '-h' then
 begin
   Writeln('Usage: xpaclient [<options>]');
   Writeln('');
   Writeln('where <options> include:');
   Writeln('   -h             Help');
   Writeln('   -d <x>,<x>     Deploy project files (Source path, New path)');
   Writeln('   -b             Build project');
   Writeln('   -C<x>          CPU architecture (arm, x86, mips)');
   Writeln('   -P<x>          Project file (.pas, .dpr, .lpr)');
 end else
 begin
   Writeln('Command not found');
 end;
end;

begin
 Writeln('X Platform Assistant Client version ' + ver);
 Writeln('Copyright © 2016-2017');
 Writeln('');
 if ParamCount > 0 then
 begin
   for I := 1 to ParamCount do
   begin
     GetParams(I);
   end;
 end else
 begin
   Writeln('Command not found');
 end;
end.                     
WWW
Cevapla
#3
Sizin de kullandığınız gibi Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol size parametre sayısını verir. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol ile de her bir parametreye erişebilirsiniz.
ParamStr(0) programın çalışma klasörü+dosya ismini verir.
Sizin örneğinizde
ParamStr(1) = -b
ParamStr(2) = -Carm
ParamStr(3) = -Pandroid.pas

Örneğin; girilen parametrelerin ilk harfi size bunun ne için kullanılacağını belirtebilir. İlk harften sonra gelenleri de ilgili parametrenin değeri şeklinde kullanabilirsiniz.
There's no place like 127.0.0.1
WWW
Cevapla
#4
(04-05-2017, Saat: 08:44)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSizin de kullandığınız gibi Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol size parametre sayısını verir. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol ile de her bir parametreye erişebilirsiniz.
ParamStr(0) programın çalışma klasörü+dosya ismini verir.
Sizin örneğinizde
ParamStr(1) = -b
ParamStr(2) = -Carm
ParamStr(3) = -Pandroid.pas

Örneğin; girilen parametrelerin ilk harfi size bunun ne için kullanılacağını belirtebilir. İlk harften sonra gelenleri de ilgili parametrenin değeri şeklinde kullanabilirsiniz.

Merhaba. İlginiz için teşekkürler. Onu kullanmıştım ama dediğinizi tamamen unutmuşum. O zaman döngüyü kaldırmam gerekiyor. Bana 1ci parametreye göre işlem yapacak çünkü. 2 ve 3 parametreyi yazdığınız gibi statik rakamla alırım.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  C Dll indeki Callback Nasıl Çevrilir? (Çözüldü) erkankurtaga 13 782 15-04-2018, Saat: 22:11
Son Yorum: ilgazinho
  RSA Encrypt (Çözüldü) yhackup 4 165 05-04-2018, Saat: 11:50
Son Yorum: yhackup
  [ÇÖZÜLDÜ] Google Calendar API Server tipi Erişim Metodu hakkında tecrübesi olan mrmarman 38 945 26-03-2018, Saat: 10:22
Son Yorum: klavye
  Uzak masaüstünde çalışan program, bağlantı kesildiğinde hata veriyor canbir 0 109 16-03-2018, Saat: 18:50
Son Yorum: canbir
  [ Çözüldü] Runtime da çıkan hata sebepleri Lord_Ares 8 232 16-03-2018, Saat: 17:11
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi