Autor |
Beitrag |
delphia1029
      
Beiträge: 17
|
Verfasst: So 30.08.09 22:03
hi leute,
ich habe mit einen CMD Befehl (ipconfig /all) eine Text-Datei gefüllt. Nun will ich die MAC-Adressen auslesen, aus der Textdatei. Die Funktion POS wurde mir geraten, aber ich bekomme es einfach nicht hin.
Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am So 30.08.2009 um 23:16
Moderiert von Narses: Titel erweitert.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.08.09 22:06
Hallo und  !
Was ist denn genau das Problem? Verstehst du Pos nicht? Klappt etwas nicht?
Zeig doch am besten einmal was du bereits an Code hast, das würde es etwas einfacher machen zu helfen.
Ganz allgemein würde ich eher die Adressen direkt auslesen statt den Umweg über die DOS-Funktion zu gehen und dann auch noch eine Datei zur Zwischenspeicherung zu benutzen.
|
|
delphia1029 
      
Beiträge: 17
|
Verfasst: So 30.08.09 22:09
hallo danke für die schnelle meldung!
kann man das direkt auslesen? können sie mir da eine kurze Hilfe dazu geben.
Hier mein Code (hinfällig, wenn andere Lösung besser ist)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var ld : TStringList; s : String; Position : Integer;
begin ld := TStringList.Create; ld.LoadFromFile('C:\LTO\gma.txt'); Position := Pos('Physikalische Adresse . . . . . . : ',ld); if Position<>0 then Label3.Caption:=IntToStr(Position);
end; |
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.08.09 22:13
Dafür gibt es hier etwas in der Library:
www.delphi-library.de/viewtopic.php?p=7877
Zu deinem Quelltext:
Pos funktioniert nur mit Strings. Also mit einer Zeile der StringList oder dem gesamten Text der StringList, aber nicht mit dem Objekt (der StringList) selbst.
|
|
Boldar
      
Beiträge: 1555
Erhaltene Danke: 70
Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
|
Verfasst: So 30.08.09 22:15
Das hier ermittelt die mac-Adresse direkt:
Moderiert von Narses: Code entfernt, da in der Library enthalten, siehe Link im folgenden Beitrag.
//Edit: Mist, zu langsam...
Aber das hier ist einfacher, da nur 1 Aufruf, ermittelt aber nur die primäre Mac-Adresse.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.08.09 22:18
Allerdings im Gegensatz zu der oben verlinkten Funktion nur eine Adresse. Gibt also Probleme, wenn (wie heute üblich) mehrere Netzwerkadapter vorhanden sind.
// EDIT:
Nein, bei mir kommt nicht "die primäre" (wie entscheidest du das?) heraus, sondern eine emulierte.
Zudem gibt es die von dir gepostete Funktion übrigens auch in der Library hier, du hättest diese also auch einfach verlinken können statt sie komplett zu posten.
|
|
delphia1029 
      
Beiträge: 17
|
Verfasst: So 30.08.09 22:31
hallo, danke habe jetzt deinen code verwendet. bekomme jedoch eine Fehlermeldung: Imkompatible Typen AnsiChar und Char
Zuletzt bearbeitet von delphia1029 am So 30.08.09 22:35, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.08.09 22:33
Dann benutzt du vermutlich Delphi 2009 oder 2010? Es könnte reichen ggf. den Typ Char durch AnsiChar zu ersetzen oder so etwas. Ich kann es aber leider im Moment nicht testen. Was steht denn in der Zeile?
|
|
delphia1029 
      
Beiträge: 17
|
Verfasst: So 30.08.09 22:36
Delphi-Quelltext 1:
| NCB.ncb_lana_num := Char(AdapterID); |
Fehlermeldung: [DCC Fehler] step1.pas(57): E2010 Inkompatible Typen: 'AnsiChar' und 'Char'
Moderiert von Narses: Delphi-Tags hinzugefügt
--- Moderiert von Narses: Beiträge zusammengefasst---
hey habe es jetzt gegen AnsiChar ausgetauscht und es funktioniert einwandfrei!! dankeschön.
wodurch kommt es,dass Delphi 2009 Char nicht mehr akzeptiert?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 30.08.09 22:38
Versuch am besten einmal das: Delphi-Quelltext 1:
| NCB.ncb_lana_num := AnsiChar(AdapterID); |
// EDIT:
Das liegt daran, dass bei Delphi bis 2007 ein String ein AnsiString war und ein Char ein AnsiChar. Ab Delphi 2009 jedoch ist ein String ein UnicodeString und ein Char ein Char mit einem Unicodezeichen und nicht mehr nur einem Byte. Dadurch gibt es dann solche kleinen Inkompatibilitäten, die man durch die Verwendung von AnsiChar usw. umgehen kann.
Aber eben nur, wenn man Unicode nicht braucht, was in diesem Fall ja der Fall ist.
|
|