Определяне един масив друга

Определяне един масив друга

Има два масива

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 в