![]() |
Mehrere Rückgabewerte in verschieden Textfeldern
Hallo zusammen,
erstmal "Sorry" für diese kuriose Überschrift aber mir viel nichts besseres ein. Nun zu meinem Problem. Ich frage in einer Prozedur alle lokalen IP´s ab. Diese IP´s möchte ich aber auch in einer Datenbank speichern, dazu wollte ich mal Testweise diese Ip´s in verschiedenen Labels anzeigen lassen. Dies klappt aber nicht so recht, da mir auch der logische Ansatz dazu fehlt, wie dies zu bewerkstelligen ist. Hier mal der Ursprüngliche Code der Prozedur:
Delphi-Quellcode:
Aufruf mit:
function GetLocalIPs(const aItems:TStrings):Boolean;
type PPInAddr= ^PInAddr; var wsaData: TWSAData; HostInfo: PHostEnt; HostName: Array[0..255] of Char; Addr: PPInAddr; begin Result:=False; //Lines.Clear; if WSAStartup($0102, wsaData)=0 then try if gethostname(HostName, SizeOf(HostName)) = 0 then Begin HostInfo:= gethostbyname(HostName); if HostInfo<>nil then Begin Addr:=Pointer(HostInfo^.h_addr_list); if (Addr<>nil) AND (Addr^<>nil) then Repeat aItems.Add('IP: '+StrPas(inet_ntoa(Addr^^))); inc(Addr); Until Addr^=nil; end; end; Result:=True; finally WSACleanup; end; end;
Delphi-Quellcode:
Wie bekomme ich nun die Ip´s einzeln angezeigt?? Ich hoffe ich konnte mein Problem verständlich erklären.
GetLocalIPs(listbox1.Items)
Danke Ati |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Hi.
Wenn du in deiner Repeat-Schleife auf das Literal verzichtest, dann hast du die einzelnen IP-Adressen als Strings in deiner ListBox stehen und kannst auf sie so zugreifen:
Delphi-Quellcode:
Grüße vom marabu
var
i: Integer; begin with ListBox do for i := 0 to Pred(Items.Count) do ShowMessage(Items[i]); end; |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Liste der Anhänge anzeigen (Anzahl: 1)
Mmmh. Also ich glaube es ist doch besser wenn ich mal das ganze Vorhaben erkläre. Es handelt sich hierbei um ein Programm, welches sämtliche Daten über den PC abruft. Diese Daten sollen dann in der fertigen Version automatisch in einer DB im Netz gespeichert werden, so das wir jederzeit über den aktuellen Stand aller PC´s im Netz im Bilde sind. Jetzt muß (ich hoffe jedenfalls das ich damit richtig liege) ja für jede gesammelte Info ein Feld in der DB vorhanden sein. D.h. ich habe zum Beispiel in meiner DB die Felder "IP1","IP2","IP3" und möchte die gesammelten IP´s diesen DB-Feldern zuordnen. Was alles gespeichert werden soll seht ihr im Anhang.
Ati |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Hintergrundinformation ist immer gut - aber bei welchem konkreten Problem kann man dir helfen? Deine ursprüngliche Frage war ja, wie du die IP-Adressen auf verschiedenen Label-Komponenten ausgeben kannst. Dass du mit der Zuweisung Label2.Caption := ListBox.Items[1]; deine testweise Darstellung erhältst, das weißt du selber denke ich. Hast du Probleme mit dem Datenmodell für deine Datenbank? Welche Datenbank willst du einsetzen?
marabu |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Du hast recht im Prinzip geht es schon um das DB-Modell. Ich wollte ja jetzt nur Testweise die Daten einem Label zuweisen. Das Label wird dann hinterher durch Variablen ersetzt und diese per "VALUES" dann in die DB eingefügt. Ist allerdings auch mein erstes Projekt in dieser Form mit Delphi und daher bin ich für jeden Tip dankbar falls man das eleganter lösen kann. Als DB wollte ich Firebird 1.5 einsetzen.
|
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Dein Projekt riecht nach einer Schmalspur Systemverwaltung. Da gibt es kommerzielle Lösungen (MS SMS,
![]() ![]() ![]() Du könntest dich zumindest beim Datenmodell von den fertigen Lösungen inspirieren lassen. Wenn du schon ein Datenmodell hast und möchtest es diskutieren - her damit. marabu |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Nun klar weiß ich das es da schon die verschiedensten Programme gibt. Mein Programm hat als kleine Spielerei angefangen und wurde dann immer umfangreicher. Als mein Admin das gesehen hat meinte er das das keine schlechte Sache ist und fragte ob es möglich wäre das die Daten regelmäßig in einer DB abgespeichert werden (macht auch Pluspunkte beim ISO9001-Audit). Blöd/Naiv wie ich war sagte ich "klar". Plan ist es das das Programm permanent im Hintergrund läuft und z.b. jeden Montag um 9.00 Uhr automatisch die Daten in einer Datenbank einträgt. Hört sich relativ einfach an oder? Nun zum Glück gibt es keine zeitliche Vorgabe und warum soll man Geld ausgeben, wenn man es evtl. für Nöppes bekommen kann. Ich werde mir aber mal Deine "Open Source"-Empfehlung anschauen. Und wie Du vielleicht rausgehört hast habe ich bezogen auf ein Datenmodell noch keinen blassen Schimmer.
Ati |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Das waren keine Empfehlungen von mir, sondern nur Existenz-Belege. Schau dir ruhig auch die beiden kommerziellen Links an, dort gibt es jeweils eine freie Version, quasi als Appetithäppchen. Die Vollversionen bewegen sich preislich in einem Rahmen, den ich bei ehrlicher Kalkulation meiner Aufwände sicher sprenge. Hätte ich ein budget von 8.000 Euronen wäre bei mir nach etwa drei Wochen Schicht im Schacht. Die Zeit reduziert sich noch, wenn ein technical writer und ein graphic designer mich abkassieren - ISO 9001 lässt grüßen.
marabu |
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Ich vermute mal Du bist also selbstständig. Also gut ich werde mir das mal angucken und hoffe ich darf hier wieder nerven wenn ich noch fragen habe.
|
Re: Mehrere Rückgabewerte in verschieden Textfeldern
Selbständig mit ISO 9001 Zertifizierung? Nein, ich bin einer unter vielen und muss jeden Tag den Gott werden lässt mit irgendjemand abrechnen. Wenn ich keinen zahlenden Kunden habe, dann muss mein Chef bezahlen und diese Ausgabe muss der dann seinem Chef erklären. Vor diesem Hintergrund musst du meinen vorigen Beitrag lesen. Und nerven tust du bestimmt nicht - war wohl auch mehr eine Floskel.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz