Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Вниз
Глюк при сохранении. Найти похожие ветки
← →
Hkr © (2004-03-06 21:08) [0]У меня при сохранении в файл(любыми способами) иногда бывают глюки, в следствие чего файл становится насмерть испорченым, как можно это исправить(чтоб файл не портился)?
← →
YurikGl © (2004-03-06 21:09) [1]Проверять испортился ли файл, если испортился - писать заново.
← →
Алхимик © (2004-03-06 21:13) [2]Ошибка в 17-й строке.
Ты бы код дал.
P.S.
Глюки говоришь у тебя бывают... Это тебе на медицинский форум надо :)
http://gradusnik.ru/rus/forum
← →
Nekto (2004-03-06 21:56) [3]И какой фаил ты сохраняешь??? Может с ним не тлько твоя прога работает. Нужен код!!!
← →
Hkr © (2004-03-09 10:47) [4]
> YurikGl © (06.03.04 21:09) [1]
> Проверять испортился ли файл, если испортился - писать заново.
А как проверять.
> Алхимик © (06.03.04 21:13) [2]
> Ошибка в 17-й строке.
Какой 17-й строке?
> Ты бы код дал.
> P.S.
> Глюки говоришь у тебя бывают... Это тебе на медицинский
> форум надо :)
> http://gradusnik.ru/rus/forum
Непоможет...
> Nekto (06.03.04 21:56) [3]
> И какой фаил ты сохраняешь??? Может с ним не тлько твоя
> прога работает. Нужен код!!!
Да нет вроде только моя, а сохранял 2 способами: TStringList.SaveToFile(...); и через потоки.
← →
Плохиш (2004-03-09 10:54) [5]
> > Nekto (06.03.04 21:56) [3]
> > И какой фаил ты сохраняешь??? Может с ним не тлько твоя
>
> > прога работает. Нужен код!!!
>
>
> Да нет вроде только моя, а сохранял 2 способами: TStringList.SaveToFile(...);
> и через потоки.
Ой как информативно
← →
Тимохов © (2004-03-09 10:57) [6]Поддерживаю высказывания участников форума о необходимости получения дополнительной информации.
← →
Oyster © (2004-03-09 11:05) [7]Да... До какой степени файл-то портится? Что там должно быть и что получается?
← →
Verg © (2004-03-09 11:29) [8]Ты никогда не получишь ответа на поставленный таким образом вопрос.
Аля
"У меня программа работает неправильно. Как сделать, чтобы работала правильно?"
Однако "шуток" можешь собрать - по самое небалуйся.
← →
LaidBack (2004-03-09 11:33) [9]Попробуй TDataFile, аналог ini-файла.
Плюсы:
1. бесплатный;
2. с исходниками;
3. сохраняет любые данные (TStrings и т.п.);
4. можно шифровать данные;
5. нет ограничения на размер файла
Вобщем идеальный вариант для сохранения настроек приложения! За 3 года его использования не возникло ни одного глюка по его вине.
Скачать можно здесь (4 Кб):
http://www.degisy.com/download.php
← →
Hkr © (2004-03-10 13:26) [10]
> Плохиш (09.03.04 10:54) [5]
>
> Ой как информативно
Ок, первый момент:
...
Type TZapis = Record
GroupN : String;
Location : String;
UserN : String;
PassWord : String;
Comment : TStringList;
end;
Type ZapisArray = Array of TZapis;
...
var
Zapisi : ZapisArray;
PassWord :String;
...
Function TfrmMain.RandStr:String;
Const
StrArray : Array[0..65] of String =
("Q","W","E","R","T","Y","U","I","O","P","[","]"
,"A","S","D","F","G","H","J","K","L",";","Z"
,"X","C","V","B","N","M",",",".","/","\","q","w"
,"e","r","t","y","u","i","o","p","{","}","a","s"
,"d","f","g","h","j","k","l",":","z","x","c","v"
,"b","n","m","<",">","?","|");
Var
I,K:Integer;
S:String;
Begin
S:="";
For I:=1 to 5 do
Begin
Randomize;
K:=Random(66);
S:=S + StrArray[K];
End;
Result:=S;
end;
Procedure TfrmMain.SaveFile(FileName:String);
Var
Str:TStringList;
I,K:Integer;
begin
Str:=TStringList.Create;
Str.Clear;
Str.Add("B"+RandStr+"E"+RandStr+"G"+RandStr+"I"+RandStr+"N");
Str.Add("KZ "+IntToStr(High(Zapisi)+1));
For I:=0 to High(Zapisi) do
Begin
Str.Add(RandStr);
Str.Add("Z "+IntToStr(I));
Str.Add("GN "+Zapisi[I].GroupN);
Str.Add("GL "+Zapisi[I].Location);
Str.Add("UN "+Zapisi[I].UserN);
Str.Add("UP "+Zapisi[I].PassWord);
Str.Add("GC "+
IntToStr(Zapisi[I].Comment.Count));
For K:=0 To Zapisi[I].Comment.Count-1 do
Str.Add(Zapisi[I].Comment[K]);
End;
Str.Add("E"+RandStr+"N"+RandStr+"D"+RandStr);
Str.Text:=Crypt(Str.Text,PassWord,False,1);
Str.Insert(0,"Vers 1.03 Code Type 1");
Str.SaveToFile(FileName);
Modify:=False;
FilName:=FileName;
end;
вроде весь, второй:
...
const
BufSize=10240;
LogFN="ProgMon.log";
type
TCharAr=Array [1..BufSize] of char;
TMesType=(mtUnk,mtOpen,mtClose,mtActivate);
type TLogRecord = record
Time: TDateTime;
MesType:TMesType;
Handle:THandle;
FirstPar:String;
SecondPar:String;
end;
type TLogRecArr = Array of TLogRecord;
...
var
WinDir : String;
WinDirA: array [0..255] of char;
...
Function StrToCharAr(Str:String):TCharAr;
Var I:Integer;
Begin
For I:=1 to Length(Str) do
begin
Result[I]:=Str[I];
end;
end;
Procedure WriteLog(LogRec:TLogRecord);
Var
LogFS:TFileStream;
CharAr:TCharAr;
len:Integer;
begin
try
if not FileExists(WinDir+LogFN) then
LogFS:=TFileStream.Create(WinDir+LogFN,fmCreate)
else
LogFS:=TFileStream.Create(WinDir+LogFN,fmOpenReadWrite);
try
LogFS.Seek(0,soFromEnd);
LogFS.Write(LogRec.Time,SizeOf(TDateTime));
LogFS.Write(Byte(LogRec.MesType),SizeOf(Byte));
LogFS.Write(LogRec.Handle,SizeOf(THandle));
len:=length(LogRec.FirstPar);
CharAr:=StrToCharAr(LogRec.FirstPar);
LogFS.Write(len, SizeOf(Integer));
LogFS.Write(CharAr,len);
len:=length(LogRec.SecondPar);
LogFS.Write(len, SizeOf(Integer));
CharAr:=StrToCharAr(LogRec.SecondPar);
LogFS.Write(CharAr,len);
{TDateTime,Byte,THandle,Int,CharAr,Int,CharAr}
finally
LogFS.Free;
end;
except end;
end;
...
initialization
try
GetWindowsDirectory(WinDirA, 255);
WinDir:=WinDirA;
WinDir:=WinDir+"\";
except
end;
end.
> Oyster © (09.03.04 11:05) [7]
> Да... До какой степени файл-то портится? Что там должно
> быть и что получается?
Там же сказано насмерть, т.е. так, что его потом можно "выбрасывать", да впринципе не суть важно как и почему он портится, важно как этого избежать...
← →
Алхимик © (2004-03-10 13:48) [11]По первому варианту:
TStringList забываешь уничтожать.High(Zapisi)
- где задаешь длину массива Zapisi?Str.Text:=Crypt(Str.Text,PassWord,False,1);
- может шифровка глючит?Modify:=False;
- Что это?FilName:=FileName;
- Что это?
Про отступы слышал?
← →
Hkr © (2004-03-10 15:47) [12]
> Алхимик © (10.03.04 13:48) [11]
> По первому варианту:
> TStringList забываешь уничтожать.
Ой... точно
> High(Zapisi) - где задаешь длину массива Zapisi?
В других процедурах
> Str.Text:=Crypt(Str.Text,PassWord,False,1); - может шифровка
> глючит?
Нет, он ведь не всегда глючит
> Modify:=False; - Что это?
Это, что все изменения сохранены.
> FilName:=FileName; - Что это?
Куда сохранять по нажатию Сохранить
> Про отступы слышал?
У меня было с отступами...
Может вообще всю прогу дать, чтоб понятнее было?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.027 c