Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по потокам [D7, WinXP]


Страницы:   1 2 3 4 5

Русланка ©   (2005-09-01 15:48:00) 

Если у меня в главном модуле объявлены глобальные переменные, то сможет ли запущенный отдельный поток писать и читать данные из этих переменных?


Игорь Шевченко   (2005-09-02 16:05:00) [61]

Alexander Panov ©   (02.09.05 16:04) [27]


> А чему оно должно соответствовать?


Про соответствие ты начал, вообще-то.
Я еще раз выскажу мысль, что не стоит в форуме для начинающих выкладывать код, потенциально ведущий к глюкам.


Alexander Panov   (2005-09-02 16:05:00) [62]

Если вы имеете ввиду, что я употребил слово "соответствующий", так все верно. Имя файла будет соответствовать тому, которое должно получиться в результате работы функции. И не более того.


Alexander Panov   (2005-09-02 16:04:00) [63]

Игорь Шевченко ©   (02.09.05 16:03) [25]
Вопрос только, чему оно соответствует.


А чему оно должно соответствовать?


begin...end   (2005-09-02 16:04:00) [64]

> Alexander Panov ©   (02.09.05 16:01) [23]

У меня вопрос, аналогичный [25].


Игорь Шевченко   (2005-09-02 16:03:00) [65]

Alexander Panov ©   (02.09.05 16:01) [23]


> "Projecini" - неправильное имя?


Вопрос только, чему оно соответствует.


Alexander Panov   (2005-09-02 16:02:00) [66]

Игорь Шевченко ©   (02.09.05 16:01) [22]
Попробуй.


А зачем пробовать? и так видно, что получаемое имя будет легальным.

Елинственный недочет - не учитывается общая длина имени файла, которая не может быть меньше 4.


Alexander Panov   (2005-09-02 16:01:00) [67]

begin...end ©   (02.09.05 15:58) [21]
Чему соответствующее? Исполняемый файл: "Project.1", ini-файл: "Projecini". Что чему соответствует?


"Projecini" - неправильное имя?


Игорь Шевченко   (2005-09-02 16:01:00) [68]

Alexander Panov ©   (02.09.05 15:57) [20]

Попробуй.


begin...end   (2005-09-02 15:58:00) [69]

> Alexander Panov ©   (02.09.05 15:52) [18]
> Значит, имя ini-файла будет соответствующее.

Чему соответствующее? Исполняемый файл: "Project.1", ini-файл: "Projecini". Что чему соответствует?


Alexander Panov   (2005-09-02 15:57:00) [70]

Игорь Шевченко ©   (02.09.05 15:54) [19]
Попробуй сделать файлу расширение из одного символа. Или из нуля.


и?


Игорь Шевченко   (2005-09-02 15:54:00) [71]

Alexander Panov ©   (02.09.05 15:52) [18]

Я считаю, что в конференции для начинающих не стоит приводить фрагменты кода, являющиеся источником потенциальных глюков.

Попробуй сделать файлу расширение из одного символа. Или из нуля.


Alexander Panov   (2005-09-02 15:52:00) [72]

begin...end ©   (02.09.05 15:45) [17]
Любое.


Значит, имя ini-файла будет соответствующее.
Но вот Это было изначально неправильно.- в упор не вижу


begin...end   (2005-09-02 15:45:00) [73]

> Alexander Panov ©   (02.09.05 15:39) [16]

Любое.


Alexander Panov   (2005-09-02 15:39:00) [74]

Игорь Шевченко ©   (02.09.05 15:38) [15]
Поясняю. Размер расширения исполняемого файла не обязательно равен 3-м символам.


А какое может быть еще расширение у написанного мнойисполняемого файла?


Игорь Шевченко   (2005-09-02 15:38:00) [75]

Alexander Panov ©   (02.09.05 14:36) [14]

Поясняю. Размер расширения исполняемого файла не обязательно равен 3-м символам.


Alexander Panov   (2005-09-02 14:36:00) [76]

Игорь Шевченко ©   (02.09.05 14:04) [13]
Это было изначально неправильно.


Поясни?


Игорь Шевченко   (2005-09-02 14:04:00) [77]

Alexander Panov ©   (02.09.05 13:37) [12]

Это было изначально неправильно. А ChangeFileExt работает правильно.


Alexander Panov   (2005-09-02 13:37:00) [78]

Игорь Шевченко ©   (02.09.05 13:27) [11]

Это было изначально в другом модуле - только на WinAPI без подключения Sysutils.


Игорь Шевченко   (2005-09-02 13:27:00) [79]


> function GetIniName: String;
> begin
>  Result := ParamStr(0);
>  SetLength(Result,Length(Result)-3);
>  Result := Result +'ini';
> end;


Result := ChangeFileExit (ParamStr(0), '.ini');


Alexander Panov   (2005-09-02 11:47:00) [80]

vidiv ©   (02.09.05 11:23) [8]
А ктонибудь может привести пример синхронизации на вин-апи?


unit uIni;

interface

uses
 windows,IniFiles;

 procedure EnterIniCS;
 procedure LeaveIniCS;
 function GetIniName: String;
 function GetParm(const aSec,aParm: String): String;
 procedure WriteParm(const aSec,aParm,aValue: String);
 procedure DeleteSection(const aSec: String);
 procedure DeleteKey(const aSec,aParm: String);

var
 IniCS: RTL_CRITICAL_SECTION;

implementation

procedure EnterIniCS;
begin
 EnterCriticalSection(IniCS);
end;

procedure LeaveIniCS;
begin
 LeaveCriticalSection(IniCS);
end;

function GetIniName: String;
begin
 Result := ParamStr(0);
 SetLength(Result,Length(Result)-3);
 Result := Result +'ini';
end;

function GetParm(const aSec,aParm: String): String;
var
 ini: TIniFIle;
begin
 Result := '';
 ini := TIniFile.Create(GetIniName);
 try
   EnterIniCS;
   Result := ini.ReadString(aSec,aParm,'');
   LeaveIniCS;
 finally
   ini.Free;
 end;
end;

procedure WriteParm(const aSec,aParm,aValue: String);
var
 ini: TIniFIle;
begin
 ini := TIniFile.Create(GetIniName);
 try
   EnterIniCS;
   ini.WriteString(aSec,aParm,aValue);
   LeaveIniCS;
 finally
   ini.Free;
 end;
end;

procedure DeleteKey(const aSec,aParm: String);
var
 ini: TIniFIle;
begin
 ini := TIniFile.Create(GetIniName);
 try
   EnterIniCS;
   ini.DeleteKey(aSec,aParm);
   LeaveIniCS;
 finally
   ini.Free;
 end;
end;

procedure DeleteSection(const aSec: String);
var
 ini: TIniFIle;
begin
 ini := TIniFile.Create(GetIniName);
 try
   EnterIniCS;
   ini.EraseSection(aSec);
   LeaveIniCS;
 finally
   ini.Free;
 end;
end;

initialization
 InitializeCriticalSection(iniCS);
finalization
 DeleteCriticalSection(iniCS);
end.


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо