ПредишенСледващото

Спиране на записа да подадат

Здравейте
Prompt живо същество, как да се определи, че файлът е изцяло написан и нищо друго, което не е в употреба?
има такова изх. код:
Процедура спаси;
Var INI: TINIFile;
е: Файл на байт;
започвам
INI: = TINIFile.Create ( "log.ini");
ini.WriteString ( "основен", "пътека", ExtractFilePath (ParamStr (0)));
ini.WriteString ( "основен", "Програмно", ExtractFilename (ParamStr (0)));
.

.
ini.Free;
AssignFile (е "log.ini");
нулиране (е); // тук и арго :(. Тъй размер фал = 0 до 15 байта


т.е. 98 уиндсърфинг (за XP всичко нормално) файл, получен dopisanym не до края, след като се обадите безплатно метод за INI обект.
как да се определи, че процесът на запис е завършена.

най-лесният начин, очевидно, за да се опитате да отворите в изключителен режим.

тъй като тя е отворена в изключителен режим?

Например, FileOpen и отваряне на файл константи режим

не работи :(
Той е открит през fmShareExclusive все още продължава да отваря друга недовършена файлова система

Можете да podozhat завършване на всички операции и затворете файла с помощта на прости стъпки:
ако renamefile ( "log.ini", "log.ini"), след това <процесс записи завершен>

точно! спечелил :)
но по принцип остава въпросът как всъщност да се определи файл например отваря друга програма е действително се добави в края?

Попитайте други програми

>> Palladin
много умен,
Просто oborzhatsya възможно.
И как. не подкани. Хвърлен знания

>> Verg
не работи :(
I опита да постави в една линия, докато не renameFile ( "log.ini", "log.ini") направи R: = грях (0.33323);
все пак все още не е открита програмата да завърши преди края на файла.

може да бъде по този начин, можете да извикате функция система, нулиране буфери на файлове на диск, или нещо подобно.

и UpdateFile, според вас, какво прави?

то UpdateFile ако го отвори себе си :)
като например системата работи две програми, една от които се записва във файла, а другият чете от него, а след това UpdateFile не работи

и аз не съм се шегувам, когато е смешно?


> Докато не renameFile ( "log.ini", "log.ini") направи R: = грях (0.33323);

Е, това не се препоръчва да се направи на първо място, тези цикли,
докато не renameFile ( "log.ini", "log.ini") направи сън (0);

На второ място, всичко зависи от това как точно другата програма е писането на даден файл, т.е. Ако, например, той се отваря файла - добавя kusok- прекратява преписката, и толкова много пъти, както намери за добре, няма начин да се определи дали се свърши да пише всичко, което тя искаше да или не.

Ако, обаче, записът се извършва на принципа на отворен файл, записан всичко, което искахме, ние затворете файла, комбинацията
докато не (FileExists (fname) и renamefile (fname, fname)) направи сън (0) (може да application.processmessages);

открива завършването на написването му stopudovo затваряне на файла и.

>> Palladin
Просто си "отговор" удари информативни, е като на въпроса "къде живееш?" Ще кажете: "в града" :)

snake1977 # 032; (14.05.03 10:49)
И какъв отговор се интересуват - на планетата, държава, град, улица, апартамент, или може дори нещо друго.
Отговорът на този въпрос знае само програмата, заемащи записа. Обикновено за мултимедиен да не се използва dolshe ресурс, отколкото скучен.

>> Palladin
.
>>. ще звучи на въпроса по различен начин ", как да организират прехвърлянето на данни между два от моите програми" вие много други опции ще бъдат предложени

ezhelib това бяха две от моята програма, а след това въпросът не би възникнало :)

>> 1 да чака, докато файлът се затваря
откъде знаеш, че другата програма я затвори.
и как да знам, че всички буфери на файла, написани на диск.

>> 3, ако изведнъж, може би с късмет на добротата на своите програмисти пише.
той ponimaesh taih произшествия nebyvaet :)


> Как да разбера, че другата програма я затвори.

Опитайте се да се отвори в режим на запис и да разберете как


> И откъде знаеш, че всички буфери на файла, написани на диск.

по никакъв начин не

snake1977 # 032; (14.05.03 11:11)

>> 1 да чака, докато файлът се затваря
Това е по-добре, единственият метод, достъпни единствено.

>> Анатолий Podgoretsky
вече опитах :)
snake1977 (14.05.03 09:29)
не работи :(
Той е открит през fmShareExclusive все още продължава да отваря друга недовършена файлова система

Опитах и ​​fmShareExclusive или fmOpenRead
всички предлагат отличен, но размерът = 0
:(

>> Анатолий Podgoretsky
Факт е, че друга програма може да го отворите, както желаете, включително да се даде възможност за четене и писане :)

след това само второто изпълнение, с промени очакването

Свързани статии

Подкрепете проекта - споделете линка, благодаря!