Autor Beitrag
delphia1029
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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 user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am So 30.08.2009 um 23:16
Moderiert von user profile iconNarses: Titel erweitert.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 30.08.09 22:06 
Hallo und :welcome: ! ;-)

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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)
ausblenden 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 user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: So 30.08.09 22:15 
Das hier ermittelt die mac-Adresse direkt:

Moderiert von user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: So 30.08.09 22:36 
ausblenden Delphi-Quelltext
1:
NCB.ncb_lana_num := Char(AdapterID);					


Fehlermeldung: [DCC Fehler] step1.pas(57): E2010 Inkompatible Typen: 'AnsiChar' und 'Char'

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

---Moderiert von user profile iconNarses: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 30.08.09 22:38 
Versuch am besten einmal das:
ausblenden 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.