Определяне един масив друга
Определяне един масив друга
Има два масива
Var
SelfAppFileName: масив [0..MAX_PATH] овъгляване;
AppFileName: масив [0..MAX_PATH] овъгляване;
Как да задам един масив в друг? Тя не работи: SelfAppFileName: = AppFileName;
Прочетете Канти. Бързо!
и защо се държиш като масиви? от обикновените струни виновен?
> Как да задам един масив в друг?
Преместете процедура.
Palladin, уча се да програмирате API, и това е така любезен на линия са разположени в много функции, например в същото
GetModuleFileName (0, AppFileName, SizeOf (AppFileName));
като цяло, както аз зададете друг такъв?
Така че, нали?
Преместете (AppFileName, SelfAppFileName, SizeOf (AppFileName));
Не, това със сигурност е похвално, но GetModuleFileName отнема в параметрите не е масив и указател към определен буфер и размера на буфера. така че е необходимо за добро
И ако трябва да се направи това? Приблизително определен, както следва:
AppFileName: = SelfAppFileName + "Тест";
Така че това по някакъв начин не е много ми се струва:
Преместване (AppFileName + "Тест", SelfAppFileName, SizeOf (AppFileName + "тест"));
Може би по-добре в последния параметър, за да посочите MAX_PATH? Или нещо друго?
Преместване (AppFileName + "Тест", SelfAppFileName, SizeOf (AppFileName + "тест")); така че дори не работи. (((Как да направите такава задача моля помогнете.
В общи линии - използвайте линията и не страдат.
SetLength (S, MAX_PATH);
п: = GetModuleFileName (0, S @ [1], дължина (а));
Ако п = 0 тогава се повишава Exception.Create ( "грешка Kakata");
SetLength (S, N);
и работи с тях, както си сърце желае, добавя, е назначена.
Фактът на въпроса, че са един и същ тип масив [0..MAX_PATH] овъгляване;
тип
TMas = масив [0..MAX_PATH] овъгляване
Var
SelfAppFileName: TMas;
AppFileName: TMas;
> Фактът на въпроса, че са един и същ тип масив [0..MAX_PATH] овъгляване;
Dmitry_177 # XA0; (10/17/06 15:01) [13]
както и един?
Така че - един. И така, твърде:
SelfAppFileName, AppFileName: # XA0; масив [0..MAX_PATH] овъгляване
един.
тип
# XA0; TMaxPathString = # XA0; масив [0..MAX_PATH] овъгляване;
Var
# XA0; SysDir: TMaxPathString;
# XA0; Име: TMaxPathString;
# XA0; GetSystemDirectory (SysDir, MAX_PATH);
# XA0; Име: = SysDir + "\ test.txt";
И защо не работи?
и как след това да се направи такава задача?
Аз разбирам, че това е глупав въпрос, но бих искал да знам отговора, книгата вече е в непосредствена близост до не. (((
Е, кажи ми, моля ..
Какво ангела, които правите тези масиви? че, [9] не е възможно поради религиозни причини?
Правилно казват, работят по-добре с низове String, и ако е необходимо да подадете параметър на API - PChar (и);
Т.е. можете
Var
S: String;
SetLength (S, MAX_PATH);
п: = GetModuleFileName (0, PChar (и) Дължина (а).);
и за типовете
Това съобщение се създава, когато два различни вида:
тип
# XA0; arrstr1 [0..MAXPATH] на знак;
# XA0; arrstr2 [0..MAXPATH] на знак;
И в този случай:
тип
Тт = масив [0..1] на знак;
Var
М1, М2: Тт;
започвам
m1: = "QW";
m2: = m1;
WriteLn (m2); // QW
край.
Когато prisvaenii m2: = m1 създават "псевдоним" за първи масив и след това, когато m2: = "QW" след М1 също да стане равен на "QW"
> При prisvaenii m2: = m1 създават "псевдоним" за първи масив
> Продължи с m2: = "QW", тогава също M1 стане равен на "QW"
Т.е. Исках да кажа това:
тип
Тт = масив [0..1] на знак;
Var
М1, М2: Тт;
започвам
m1: = "QW";
m2: = m1;
WriteLn (m2); // QW
m2: = "NEWVALUE";
WriteLn (m1); // NEWVALUE
край.
Памет: 0.76 MB
Време: 0.08 в