|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
не удается писать в файл больше 1 строки
сделал прогу
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Îáÿçàòåëüíî stdcall !!! Var i:integer; Ini: Tinifile; // Nm:Array[0..255] of Char; // Cs: Array[0..255] of Char; // Ch:Char; // Begin Ini:=TiniFile.Create(extractfilepath(paramstr(0))+ 'MyIni.ini'); GetWindowText(Wd,Nm,255); // GetClassName(Wd,Cs,255); // ini.WriteString(inttostr(i+1), 'programm',' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time)); // If (GetWindowTextLengthW(Wd) > 0) and (IsWindow(Wd) or IsIconic(Wd)) then form1.ListBox1.Items.Add(' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time)); EnumProc := TRUE; Ini.Free; end; записываетсья последняя строка и все |
#2
|
||||
|
||||
Ну добавь второй ini.WriteString. И не перегружай так сильно строки.
Программирование - это искусство и наш смысл жизни. |
#3
|
|||
|
|||
хотелось бы чтобы ето был не ини файл а тхт истрок в нем как минимум 1000
что можете посоветовать в ини файл писал от без исходности подозреваю что нет перехода на новую строку |
#4
|
||||
|
||||
Используй TextFile, AssignFile(), writeln и readln. Rewrite()-запись, Reset() -открытие файла, CloseFile() - закрытие твоего файла.
Код:
var f: TextFile; name: String[80]; i: integer; begin if Form1.SaveDialog1.Execute then name := Form1.SaveDialog1.Filename; AssignFile(f, name); {$I-} Rewrite(f); for i:=0 to Form1.Memo1.Lines.Count do writeln(f, Form1.Memo1.Lines[i]); CloseFile(f); end; Программирование - это искусство и наш смысл жизни. Последний раз редактировалось moo2k, 07.11.2007 в 08:38. |
#5
|
|||
|
|||
вся проблема чтоб файл создавался без диалогов в автомате и именем файла было время его создания и вот надо научиться писать в файл более одной строки
чтоб потом через заданый промежуток удалялся устаревший на три дня файл или папка что получиться так и будет (я написал кусок который создает по таймеру папку с именем-число.месяц.год) а как его делать файл????? var f: TextFile; name: String[10]; j: integer; begin createdir('c:\base'); if createdir('c:\base\'+DateToStr(Date)) = true then ---- как потом имя папки передать в путь к файлу?? showmessage('папка создана'); name := 'c:\base\'+TimeToStr(Time)+'.txt';-------- создает файл без расширения вообще да и время в формате часы минуты секунды не выходит просто час ладно бы хоть текстовый файл создавался AssignFile(f, name); {$I-} Rewrite(f); CloseFile(f); end; правда как потом организовать поиск устаревших чтоли всю папку гробить не думал пока думаю проще всего взять имя папки и сравнить с датой минус нужный период гдето видел как это сделать если нетрудно поправь там будет if strtodate(имя папки)=(data-n) then forcedelet or forcedirectory????? Последний раз редактировалось wrag, 07.11.2007 в 19:55. |
#6
|
|||
|
|||
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; //
Var date_new, date_old, dir ,strochka: String; fille : TStringList ; Nm:Array[0..255] of Char; // Cs: Array[0..255] of Char; // //Ch:Char; // Begin GetWindowText(Wd,Nm,255); // GetClassName(Wd,Cs,255); // dir:=ExtractFileDir(Application.ExeName); createdir(dir+'\base'); dir:=dir+'\base'; date_new:=FormatDateTime('dd_mm_yyyy', dateof(now)); date_old:=FormatDateTime('dd_mm_yyyy', dateof(now)-3); fille:=TStringList.Create; // If (GetWindowTextLengthW(Wd) > 6) and (IsWindow(Wd) or IsIconic(Wd)) then fille.add(' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time)); EnumProc := TRUE; fille.SaveToFile(dir+'\'+date_new+'.txt'); fille.Free; end; прикол сделали с преподавателем вариант создающий наконец файл тхт блин но опять записываеться только последняя строка ааааааааа хелп как писать все что удалось выдрать из заголовков |
#7
|
|||
|
|||
плизз хелп
|
#8
|
||||
|
||||
вот этот кусок:
Код:
fille:=TStringList.Create; // If (GetWindowTextLengthW(Wd) > 6) and (IsWindow(Wd) or IsIconic(Wd)) then fille.add(' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time)); EnumProc := TRUE; fille.SaveToFile(dir+'\'+date_new+'.txt'); Код:
fille:=TStringList.Create; fille.LoadFromFile(dir+'\'+date_new+'.txt'); //это добавлено // If (GetWindowTextLengthW(Wd) > 6) and (IsWindow(Wd) or IsIconic(Wd)) then fille.add(' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time)); EnumProc := TRUE; fille.SaveToFile(dir+'\'+date_new+'.txt'); |
#9
|
|||
|
|||
теперь прога ругаеться на то что нельзя загрузить из файла так как он еще не создан
|
#10
|
||||
|
||||
А проверку сделать на существования файла несудьба?
|
#11
|
|||
|
|||
в том то идело что желательно чтобы была последовательность
создать файл записать в него закрыть файл если файл уже создан добавить в него следующую строку по ходу дела придеться заморочиться проверкой на существование а хотелось попроще |
#12
|
||||
|
||||
Цитата:
А ты как думал |
#13
|
|||
|
|||
Цитата:
ini.WriteString(inttostr(i+1), 'programm',' '+String(Nm)+'/'+DateToStr(Date)+'/'+TimeToStr(Time) +#13#10); #13#10 - это переход на новую строку |