Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Prüfen ob string auf '.exe' endet (https://www.delphipraxis.net/192792-pruefen-ob-string-auf-exe-endet.html)

Ydobon 19. Mai 2017 11:11

AW: Prüfen ob string auf '.exe' endet
 
Wenn in XE 2 schon dabei,
Delphi-Quellcode:
function EndsText(const ASubText, AText: string): Boolean;
aus den StrUtils. Ignoriert von sich aus die Schreibweise.

Edit: Die Aktualisierung der Beiträge im Forum könnte etwas schneller sein.

Poelser 19. Mai 2017 11:12

AW: Prüfen ob string auf '.exe' endet
 
Zitat:

Zitat von Aviator (Beitrag 1372043)
Zitat:

Zitat von Poelser (Beitrag 1372039)
Einfach aus SysUtils ChangeFileExt die Extension ändern. Wenn die bereits auf .exe lautet, bleibt sie so wie sie ist.

HTH, Poelser

Das ist aber sehr radikal. Welchen Vorteil erhoffst du dir davon? :shock:

Leicht lesbarer Einzeiler. :)

Aviator 19. Mai 2017 11:25

AW: Prüfen ob string auf '.exe' endet
 
Zitat:

Zitat von Poelser (Beitrag 1372059)
Leicht lesbarer Einzeiler. :)

Allerdings mit einer nicht so ganz zufriedenstellenden Lösung. :mrgreen:

Fritzew 19. Mai 2017 12:26

AW: Prüfen ob string auf '.exe' endet
 
Dafür bieten sich Unittests förmlich an:

Delphi-Quellcode:
unit Unit30;

interface
uses
  DUnitX.TestFramework;

type

  [TestFixture]
  TExtensionTests = class(TObject)
  public
    [Test]
    [TestCase('TestA1','test,test.exe')]
    [TestCase('TestA2','test.,test.exe')]
    [TestCase('TestA3','test.e,test.exe')]
    [TestCase('TestA4','test.e.,test.e.exe')]

    procedure Test1(const Value, res : string);


    [Test]
    [TestCase('TestB1','test,test.exe')]
    [TestCase('TestB2','test.,test.exe')]
    [TestCase('TestB3','test.e,test.exe')]
    [TestCase('TestB4','test.e.,test.e.exe')]
    procedure Test2(const Value, res : string);


  end;

implementation
 uses Sysutils;

const
  lext = '.exe';


function ChangeExtension(const Value : string; const extension : string) : string;
begin
  result := ChangeFileExt(Value, extension);
end;


function ChangeExtensionEndsText(const Value : string; const extension : string) : string;
begin
 result := Value;
 if AnsiLowerCase(ExtractFileExt(result)) <> '.exe' then
  begin
    result := result + '.exe';
  end;
end;


procedure TExtensionTests.Test1(const Value, res : string);
Var
    lTestResult : String;

begin
 lTestResult :=  ChangeExtension(value, lext);
 assert.AreEqual(res, lTestResult);
end;


procedure TExtensionTests.Test2(const Value, res : string);
Var
    lTestResult : String;

begin
 lTestResult :=  ChangeExtensionEndsText(value, lext);
 assert.AreEqual(res, lTestResult);
end;

initialization
  TDUnitX.RegisterTestFixture(TExtensionTests);
end.
Wenn man erst mal angefangen hat Tests zu schreiben wird man förmlich süchtig danach :-D

SneakyBagels 19. Mai 2017 19:34

AW: Prüfen ob string auf '.exe' endet
 
Zitat:

Dafür bieten sich Unittests förmlich an:
Man kann auch mit Kanonen auf Spatzen schießen ;)

Fritzew 19. Mai 2017 20:19

AW: Prüfen ob string auf '.exe' endet
 
Zitat:

Zitat von SneakyBagels (Beitrag 1372113)
Zitat:

Dafür bieten sich Unittests förmlich an:
Man kann auch mit Kanonen auf Spatzen schießen ;)

Stimmt! :-D
Aber das Ergebnis spricht für sich....

Das schöne ist, wenn man einmal angefangen hat hilft es echt....
Und in diesem Zusammenhang Danke Stevie für Testinsight


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz