Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.15;
Скачать: CL | DM;

Вниз

Создание xml файла в делфи   Найти похожие ветки 

 
Медвежонок Пятачок ©   (2011-09-30 10:40) [40]

сначала вежливо, а если не поймет, скажи, что позовешь местных и они ему наваляют.

кстати, открой секрет, кто такой "он"?


 
vgvolk   (2011-09-30 10:46) [41]

Нужно прииллюстрировать это на прмере.Он это делфи


 
Медвежонок Пятачок ©   (2011-09-30 11:03) [42]

ты вообще в курсе, что делфи надо запрограммировать, чтобы "он" кидал что-то куда-то и создавал папки где-то?

ты папку создавал?


 
Dennis I. Komarov ©   (2011-09-30 11:18) [43]


> Нужно прииллюстрировать это на прмере

Кому?


 
stas ©   (2011-09-30 11:52) [44]

http://www.google.com.ua/search?rlz=1C1_____enUA410UA410&aq=f&sourceid=chrome&ie=UTF-8&q=delphi+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C+%D0%BF%D0%B0%D0%BF%D0%BA%D1%83


 
Плохиш ©   (2011-09-30 12:31) [45]

Изучение делфи на форуме за неделю для полных идиотов.


 
vgvolk   (2011-10-03 19:46) [46]

Так папку я создал
procedure TForm1.btn3Click(Sender: TObject);
var fil: TextFile;
   s:string;
begin
begin
ForceDirectories("C:\Форма1П\Выходные данные\"+DateToStr(Date));
fullFileName := "C:\Форма1П\Выходные данные\";
AssignFile(fil,ExtractFilePath  (fullFileName)+cbb1.Text+".txt");
if FileExists(ExtractFilePath  (fullFileName)+cbb1.Text+".txt") then
Append(fil) else  rewrite(fil);
Writeln(fil,"<?xml version="1.0" encoding="UTF-8"?><package subdivision=""+cbb1.text+"" name="" date=""+formatdatetime("yyyymmdd",Date())+"">");
CloseFile(fil);
Этот код создает пустую папку с текущей датой в нужном месте НО
куда мне вписать DateToStr(Date) чтобы текстовый файл он создавал в той же папке.Вставляю сюда fullFileName := "C:\Форма1П\Выходные данные\"+DateToStr(Date); Эффект нулевой.Что не так?


 
vgvolk   (2011-10-04 09:45) [47]

Никто не видет проблемы в коде а то я уже запарился.Мне нужно чтобы он все эти операции делал в папке с текущей датой.


 
RWolf ©   (2011-10-04 09:55) [48]

> ExtractFilePath  (fullFileName)+cbb1.Text+".txt"

и чему равняется ExtractFilePath  (fullFileName)+cbb1.Text+".txt" ?


 
Cobalt ©   (2011-10-04 09:56) [49]

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


 
stas ©   (2011-10-04 11:50) [50]

Cobalt ©   (04.10.11 09:56) [49]
+1
или напиши комментарии на каждой строчке


 
vgvolk   (2011-10-04 12:20) [51]

procedure TForm1.btn3Click(Sender: TObject);
var fil: TextFile;
begin
begin
ForceDirectories("C:\Форма1П\Выходные данные\"+DateToStr(Date));{Создает папку с именем равныи текущей дате}
fullFileName := "C:\Форма1П\Выходные данные\";{Создание относительного пути}
AssignFile(fil,ExtractFilePath  (fullFileName)+cbb1.Text+".txt");{ExtractFilePath  (fullFileName)это путь выше,cbb1.Text это код берется из комбобокса}
if FileExists(ExtractFilePath  (fullFileName)+cbb1.Text+".txt") then
Append(fil) else  rewrite(fil);{Если файл существует тогда добавить данные если нет тогда создать новый файл}
Writeln(fil,"<?xml version="1.0" encoding="UTF-8"?><package subdivision=""+cbb1.text+"" name="" date=""+formatdatetime("yyyymmdd",Date())+"">");{Запись текста в файл }
CloseFile(fil);{Закрытие файла}

Этот код создает папку именем равныи текущей дате(C:\Форма1П\Выходные данные\04.10.11) и текстовый файл(C:\Форма1П\Выходные данные\файл.txt) а мне нужно чтобы он сделал так(C:\Форма1П\Выходные данные\04.10.11\файл.txt).Т.е. чтобы он скидывал текстовый файл скидывался в путь создаваем функцией ForceDirectories.Вот такие пироги.


 
SergP ©   (2011-10-04 12:35) [52]

fullFileName := "C:\Форма1П\Выходные данные\";{Создание относительного пути}

какой путь создаешь, туда программа и скидывает файлы.

Если нужно с датой, то

fullFileName := "C:\Форма1П\Выходные данные\"+DateToStr(Date)+"\";

ЗЫ Только не работай с этой программой в полночь.


 
Dennis I. Komarov ©   (2011-10-04 12:41) [53]

ведь поди прога, (Судя по "Форма1П") для чьей-то работы нужна...


 
Очень Злой   (2011-10-04 12:49) [54]


> в путь создаваем функцией ForceDirectories.Вот такие пироги.


эта функция создает папку а не путь... Кроме того, она еще возвращает некоторое значение, которое тоже не помешало бы проанализировать...
А путь - это набор символов, показывающий расположение файла/папки в файловой системе.


 
vgvolk   (2011-10-04 12:51) [55]

ГИГАНТСКОЕ Спасибо.Теперь работает.Я делал почти то же самое только не знал что после DateToStr(Date) нужно писать слэш в кавычках)


 
SergP ©   (2011-10-04 13:12) [56]


> vgvolk   (04.10.11 12:51) [55]
>
> ГИГАНТСКОЕ Спасибо.Теперь работает.Я делал почти то же самое
> только не знал что после DateToStr(Date) нужно писать слэш
> в кавычках)


> ForceDirectories("C:\Форма1П\Выходные данные\"+DateToStr(Date));
> {Создает папку с именем равныи текущей дате}
> fullFileName := "C:\Форма1П\Выходные данные\";{Создание
> относительного пути}


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

Хотябы типа так:
fullFileName:="C:\Форма1П\Выходные данные\"+DateToStr(date);
ForceDirectories(fulFileName);
fullFileName := fullFileName+"\";


 
vgvolk   (2011-10-04 14:08) [57]

Спасибо.Попробую.Кстати я заметил такой глюк при смене раскладки клавиатуры(Shift+Alt) на форме пропадают все неактивные элементы,наверное это горячая клавиша делфи.хотя в списке горячих клавиш я не увидел.Может это глюк моей программы.Никто не сталкивался с подобным.Как ликвидировать этот глюк?


 
Cobalt ©   (2011-10-04 14:24) [58]

Насчет слешей - используй всегда функцию IncludeTrailingPathDelimiter()

а насчет неактивных - это как - пропадают?
в дизайнере?
совсем? из из модуля тоже?
или скрываются?


 
stas ©   (2011-10-04 14:31) [59]

vgvolk   (04.10.11 14:08) [57]
У тебя windows 7 ?
Это глюк, я тоже такое замечал.


 
RWolf ©   (2011-10-04 16:46) [60]

у меня тоже windows 7, но я такого не замечал.
как воспроизвести?


 
vgvolk   (2011-10-04 17:18) [61]

Они скрываются.Если на них отправляется действие то они появляются.Это получилось на Висте.Сейчас попробовал на ХР ничего не пропадает.


 
stas ©   (2011-10-04 17:20) [62]

RWolf ©   (04.10.11 16:46) [60]
У меня это происходит на формах с XP манифеестом, нажимаешь ALT и контролы исчезают, потом либо сразу появляются либо мышкой надо провести по форме.


 
vgvolk   (2011-10-04 17:25) [63]

Да это и есть тот самый глюк


 
vgvolk   (2011-10-05 12:48) [64]

procedure TForm1.btn3Click(Sender: TObject);
var fil: TextFile;
begin
begin
ForceDirectories("C:\Форма1П\Выходные данные\"+DateToStr(Date));{Создает папку с именем равныи текущей дате}
fullFileName := "C:\Форма1П\Выходные данные\"+DateToStr(Date)+"\";
AssignFile(fil,ExtractFilePath  (fullFileName)+cbb1.Text+".txt");{ExtractFilePath  (fullFileName)это путь выше,cbb1.Text это код берется из комбобокса}
if FileExists(ExtractFilePath  (fullFileName)+cbb1.Text+".txt") then
Append(fil) else  rewrite(fil);{Если файл существует тогда добавить данные если нет тогда создать новый файл}
Writeln(fil,UTF8Encode("<?xml version="1.0" encoding="UTF-8"?><package subdivision=""+cbb1.text+"" name="" date=""+formatdatetime("yyyymmdd",Date())+"">"));{Запись текста в файл }
CloseFile(fil);{Закрытие файла}

Код создает папку с текущей датой вставляет туда файлы.Но если я заново зайду в тот же день новый текстовый файл создается в той же папке.Куда мне вставить цикл чтобы если такая папка существует то он создавал новую папку с текущей датой долько добавил к имени(1).К следующей (2) и т.д.Типа C:\Папка\папка с текущей датой(1) потом C:\Папка\папка с текущей датой(1)?


 
RWolf ©   (2011-10-05 13:12) [65]

инструмент выбирается, исходя из решаемой задачи, а не наоборот.
с чем связан выбор именно цикла как инструмента?


 
Медвежонок Пятачок ©   (2011-10-05 13:15) [66]

чтобы если такая папка существует то он создавал новую папку с текущей датой долько добавил к имени(1).К следующей (2)

сам спросил, сам ответил.

while directoryexists(dir_name) do
inc(i);
dir_name := dir_name + inttostr(i);
....


 
vgvolk   (2011-10-05 13:30) [67]

А заместь dir_name мне написать "C:\Форма1П\Выходные данные\"+DateToStr(Date)?Пишет ошибку.А инструмент мне без разницы какой просто я думаю тут цикл нужен.


 
Медвежонок Пятачок ©   (2011-10-05 13:32) [68]

Пишет ошибку.

Раз пишет, то это неспроста.
Это надо читать.


 
vgvolk   (2011-10-05 13:35) [69]

while directoryexists("C:\Форма1П\Выходные данные\"+DateToStr(Date)) do
inc(i);
"C:\Форма1П\Выходные данные\"+DateToStr(Date) := "C:\Форма1П\Выходные данные\"+DateToStr(Date) + inttostr(i)

Пишет левая сторона не может назначить к


 
Медвежонок Пятачок ©   (2011-10-05 13:38) [70]

он тебе правду пишет.
ты ему верь.


 
vgvolk   (2011-10-05 13:38) [71]

Что конкретно не правильно?


 
Медвежонок Пятачок ©   (2011-10-05 13:41) [72]

все что после inc


 
Dennis I. Komarov ©   (2011-10-05 13:41) [73]


> Медвежонок Пятачок ©   (05.10.11 13:15) [66]
>
> чтобы если такая папка существует то он создавал новую папку
> с текущей датой долько добавил к имени(1).К следующей (2)
>
> сам спросил, сам ответил.
>
> while directoryexists(dir_name) do
> inc(i);
> dir_name := dir_name + inttostr(i);
> ....

В твоем коде Inc() не обязателен :)


 
Плохиш ©   (2011-10-05 13:41) [74]


> "C:\Форма1П\Выходные данные\"+DateToStr(Date) := "C:\Форма1П\Выходные
> данные\"+DateToStr(Date) + inttostr(i)
>

Надо распечатать и на стену повесить


 
Dennis I. Komarov ©   (2011-10-05 13:42) [75]


> Что конкретно не правильно?

Мозг...


 
vgvolk2   (2011-10-05 13:43) [76]

Так как написать её имя мне же нужно прописать полный путь.
Блин уже кто-то под моим логином зарегистрировался


 
Плохиш ©   (2011-10-05 13:47) [77]

Книжку прочитать пора всё-таки...


 
Медвежонок Пятачок ©   (2011-10-05 13:48) [78]

полный путь, а не полные пути.

мужской род, единственное число.


 
SergP ©   (2011-10-05 13:54) [79]

Это:
ForceDirectories("C:\Форма1П\Выходные данные\"+DateToStr(Date));{Создает папку с именем равныи текущей дате}
fullFileName := "C:\Форма1П\Выходные данные\"+DateToStr(Date)+"\";


замени на это:
filepath:="C:\Форма1П\Выходные данные\"+DateToStr(Date);
addname:="";
i:=1;
while not ForceDirectories(filepath+addname) do
 begin
   addname:="("+inttostr(i)+")";
   inc(i);
 end;
fullFileName:=filepath+addname+"\";

Вроде так, хз...  Может заработает...

Только в var добавь:
addname:string;
i:integer;


 
stas ©   (2011-10-05 14:00) [80]

vgvolk   (05.10.11 13:38) [71]
Мы уже всем форумом тебе программу пишем, с тебя коньяк.
...Каждому)



Страницы: 1 2 3 вся ветка

Текущий архив: 2012.01.15;
Скачать: CL | DM;

Наверх




Память: 0.63 MB
Время: 0.013 c
1-1279883255
killy
2010-07-23 15:07
2012.01.15
Variant как ссылка на OLE-объект


6-1218309025
Doc.X
2008-08-09 23:10
2012.01.15
Регестарция в WordPress


2-1317904913
Alex_C
2011-10-06 16:41
2012.01.15
Узнать, нажата ли кнопка на мыши


15-1317136214
Kerk
2011-09-27 19:10
2012.01.15
Сворачивание регионов в редакторе кода


15-1316494673
xayam
2011-09-20 08:57
2012.01.15
АНТИВИРУСЫ НА ВОЙНЕ