Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

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
  Datasnap Türkçe karakter sorunu [Çözüldü] hakanharbeli 4 109 11-02-2018, Saat: 03:29
Son Yorum: hakanharbeli
Star ıdHTTP Post hakkında? [Çözüldü] Cyber 1 85 06-02-2018, Saat: 13:36
Son Yorum: Cyber
  Form create h.k (Çözüldü ) cinarbil 12 266 25-01-2018, Saat: 12:09
Son Yorum: cinarbil
  Program Files Yetki Sorunu narkotik 9 229 18-01-2018, Saat: 17:45
Son Yorum: SimaWB
  Wsdl Xml Importer(Çözüldü) yhackup 17 222 09-01-2018, Saat: 15:42
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi