Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];

Вниз

Создание 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.61 MB
Время: 0.005 c
2-1317796120
Laguna
2011-10-05 10:28
2012.01.15
Обработка ошибок в открывающейся форме


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


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


2-1317792498
petvv
2011-10-05 09:28
2012.01.15
Array of Char to String (ANSIString)=:


15-1317328203
Юрий
2011-09-30 00:30
2012.01.15
С днем рождения ! 30 сентября 2011 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский