Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eine "schöne" Lösung ohne Format (https://www.delphipraxis.net/110838-eine-schoene-loesung-ohne-format.html)

Desmulator 25. Mär 2008 17:04


Eine "schöne" Lösung ohne Format
 
Hallo Leute,
also es geht darum , dass ich die Unit SysUtils so weit wie mödlich mir ersparen möchte, deshalb suche ich nach einer möglichkeit folgendes Problem ohne Format oder IntToStr zu lösen:

Delphi-Quellcode:
function LookupDomain(const Domain : String ) : String;
var
  Host : PHostEnt;
  Addr : array[0..3] of String;
begin
  { Host-Daten einholen }
  Host := GetHostByName(PChar(Domain));
  { Die Adresse formaieren }
  Result := Format('%d.%d.%d.%d', [Ord(Host.h_addr^[0]),
                                   Ord(Host.h_addr^[1]),
                                   Ord(Host.h_addr^[2]),
                                   Ord(Host.h_addr^[3])]);
end;
Es egth darum die 4 Wert zu eine gültigen IP zusammen zu fassen , ohne die Unit SysUtils zu verwenden.

Danke für die hilfe^^

DeddyH 25. Mär 2008 17:08

Re: Eine "schöne" Lösung ohne Format
 
Versuch es doch mal mit Concat und Val.

Desmulator 25. Mär 2008 17:22

Re: Eine "schöne" Lösung ohne Format
 
Hm... Okay mit Concat kann ich die einzellstrings zusammen fügen, aber mit val kann ich nur ein string in ein integer umwandeln...
Wie hast du dir das vorgestellt?

DeddyH 25. Mär 2008 17:24

Re: Eine "schöne" Lösung ohne Format
 
Sry, hatte Val mit Str verwechselt :oops:

Desmulator 25. Mär 2008 17:29

Re: Eine "schöne" Lösung ohne Format
 
Jop thx,

nochmal für alle :
Delphi-Quellcode:
function LookupDomain(const Domain : String ) : String;
var
  Host : PHostEnt;
  Addr : array[0..3] of String;
  Test,Test2 : Integer;
begin

  { Host-Daten einholen }
  Host := GetHostByName(PChar(Domain));
  { Die Adresse formaieren }
  Str(Ord(Host.h_addr^[0]), Addr[0]);
  Str(Ord(Host.h_addr^[1]), Addr[1]);
  Str(Ord(Host.h_addr^[2]), Addr[2]);
  Str(Ord(Host.h_addr^[3]), Addr[3]);
  { Zusammen setzen }
  Result := Concat(Addr[0],'.',Addr[1],'.',Addr[2],'.',Addr[3]);
end;
Edit : Hach, is das ein schöne gefühl SysUtils aus der uses zu löschen 8)

rawsoul 25. Mär 2008 18:02

Re: Eine "schöne" Lösung ohne Format
 
Wieviel kb sparst du damit in der Echse zirka ein?

Desmulator 25. Mär 2008 21:06

Re: Eine "schöne" Lösung ohne Format
 
es geht mir nicht um die kb sondern darum nicht die SysUtils zu verwenden... ich mag nicht so gerne sachen von anderen leuten benutzen, ich mach lieber alles selber...

aber weil du es bist :-)
ohne : 93.696 Bytes
mit : 93.696 Bytes
;-)

3_of_8 25. Mär 2008 21:11

Re: Eine "schöne" Lösung ohne Format
 
Dafür ist die SysUtils.pas optimiert bis zum gehtnichtmehr, und dein Code vermutlich nicht. (Okay, bei Val, Str usw. ist es was anderes, die kommen ja auch aus der System.pas)

Aber warum willst du die nicht verwenden, ich meine, du darfst sie ja uneingeschränkt verwenden.

Luckie 25. Mär 2008 21:13

Re: Eine "schöne" Lösung ohne Format
 
Zitat:

Zitat von Desmulator
es geht mir nicht um die kb sondern darum nicht die SysUtils zu verwenden... ich mag nicht so gerne sachen von anderen leuten benutzen, ich mach lieber alles selber...

Hast du die Windows.pas und WinSock.pas auch schon selber geschrieben?

Desmulator 25. Mär 2008 21:29

Re: Eine "schöne" Lösung ohne Format
 
:wink:


öhm des ist stupide arbeit, bei der man ja nicht wirklich was lernen kann... es geht mir auch um den lern effeckt... und dlls kann ich einbinden^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.
Seite 1 von 2  1 2      

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