link6580 link6581 link6582 link6583 link6584 link6585 link6586 link6587 link6588 link6589 link6590 link6591 link6592 link6593 link6594 link6595 link6596 link6597 link6598 link6599 link6600 link6601 link6602 link6603 link6604 link6605 link6606 link6607 link6608 link6609 link6610 link6611 link6612 link6613 link6614 link6615 link6616 link6617 link6618 link6619 link6620 link6621 link6622 link6623 link6624 link6625 link6626 link6627 link6628 link6629 link6630 link6631 link6632 link6633 link6634 link6635 link6636 link6637 link6638 link6639 link6640 link6641 link6642 link6643 link6644 link6645 link6646 link6647 link6648 link6649 link6650 link6651 link6652 link6653 link6654 link6655 link6656 link6657 link6658 link6659 link6660 link6661 link6662 link6663 link6664 link6665 link6666 link6667 link6668 link6669 link6670 link6671 link6672 link6673 link6674 link6675 link6676 link6677 link6678 link6679 link6680 link6681 link6682 link6683 link6684 link6685 link6686 link6687 link6688 link6689 link6690 link6691 link6692 link6693 link6694 link6695 link6696 link6697 link6698 link6699 link6700 link6701 link6702 link6703 link6704 link6705 link6706 link6707 link6708 link6709 link6710 link6711 link6712 link6713 link6714 link6715 link6716 link6717 link6718 link6719

Форум — Ответы     (  К темам )
 ?  Иван: Работа с текстовым файлом при помощи TStringList (07-02-2003 11:18:46)
Люди!,подскажите,у меня такая задача:
В файл нужно записывать данные о пользователе:Имя-время
файл не должен содержать больше 10-ти записей,причем они должны сортироваться(по возрастанию времени)
Как это проще сделать?
Почитал про TstringList,но там сортировка по алфавиту.
Буду очень благодарен!
 Павел (08-02-2003 21:27:47)
Смотря в каком виде и откуда Вы берете данные, с базы данных или
получаете из формы.
Если из базы данных, то и хранить удобнее в базе данных, а не в текстовом файле
Если из формы, то можно организовать структуру или класс

struct POLZ {
TDateTime dt;
AnsiString SName;
... // и другие данные о пользователе
};

struct POLZ myPOLZ;
struct POLZ mass[10];

Если заранее длина массива неизвестна, можно организовать не массив, а вектор структур
#include <vector.h>
vector <POLZ> myp;

Данные получаем из формы:
Дата — из компонетнта TDateTimePicker заносим в mass[i].dt
Имя — из TEdit в mass[i].SName и т.д.

потом организуете сортировку внутри структуры по dt

и записываете структуру в файл

int ih;
ih = FileCreate("myFile.txt");
for(int i=0; i<10; i++) {
AnsiString s = DateToStr(mass[i].dt) + mass[i].SName + ...;
char buff[100]; for(int j=0; j<100; j++) buff[j]=0;
strcpy(buff,s.c_str());
FileWrite(ih, buff ,100);
}
FileClose(ih);

....

или

TStringList *sl = new TStringList();

for(int i=0; i<10; i++) {
AnsiString s = DateToStr(mass[i].dt) + mass[i].SName;
sl->Add(s);
}

sl->SaveToFile("myFile.txt");

delete sl;

....