Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 16:34   #11
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

Попробую, но все-таки как так сделать?

Просто все на векторах построено. У меня векторы заполняются из файла, а как заполнить TStringList я хз.

Последний раз редактировалось Stilet; 14.03.2012 в 22:30.
York вне форума Ответить с цитированием
Старый 14.03.2012, 16:40   #12
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

std::auto_ptr<TStringList> List(new TStringList());
в цикле
List->Add(IntToStr(IBeg->nCount)+" "+IBeg->Level+" "+ и так далее);

после цикла
List->SaveToFile(путь);
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 14.03.2012, 16:40   #13
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

Вот функции чтоб понятней было:
Код:
void TExp::LoadingFile(AnsiString name,AnsiString cScriptDir)
{
	FILE *F;
	AnsiString FullPath = cScriptDir + "//" + name;
	F = fopen(FullPath.c_str(), "rb");

	fread(&this->nBlock, sizeof(int),1,F);
	fread(&this->nColumn, sizeof(int),1,F);
	fread(&this->nSize, sizeof(int),1,F);

	vecExp.resize(this->nBlock);
	for(int i =0; i < nBlock; i++)
	{
	 fread(&vecExp[i], sizeof(strExp), 1,F);
	}

	fclose(F);
}
Код:
void TExp::ShowInTable(TStringGrid *StringGrid)
{
	StringGrid->RowCount = nBlock+1;

	for(int i=0; i < nBlock; i++)
	{
		StringGrid->Cells[0][i+1] = IntToStr(i+1);
		StringGrid->Cells[1][i+1] = vecExp[i].nCount;
		StringGrid->Cells[2][i+1] = vecExp[i].Level;
		StringGrid->Cells[3][i+1] = vecExp[i].Bellato_EXP;
		StringGrid->Cells[4][i+1] = vecExp[i].Cora_EXP;
		StringGrid->Cells[5][i+1] = vecExp[i].Accretia_EXP;
	}
}
Код:
void TExp::ApplyFile(TStringGrid *StringGrid)
{
	vecExp.resize(StringGrid->RowCount-1);
	for(int i=0; i<vecExp.size(); i++)
	{
			vecExp[i].nCount = strtoul(StringGrid->Cells[1][i+1].t_str(), NULL, 10);
			strcpy(vecExp[i].Level, StringGrid->Cells[2][i+1].t_str());
			strcpy(vecExp[i].Bellato_EXP, StringGrid->Cells[3][i+1].t_str());
			strcpy(vecExp[i].Cora_EXP, StringGrid->Cells[4][i+1].t_str());
			strcpy(vecExp[i].Accretia_EXP, StringGrid->Cells[5][i+1].t_str());
	}
	//--
}
Код:
void TExp::SaveFile(AnsiString name,AnsiString cScriptDir,TStringGrid *StringGrid)
{
	vecExp.resize(StringGrid->RowCount-1);
	for(int i=0; i<vecExp.size(); i++)
	{
			vecExp[i].nCount = strtoul(StringGrid->Cells[1][i+1].t_str(), NULL, 10);
			strcpy(vecExp[i].Level, StringGrid->Cells[2][i+1].t_str());
			strcpy(vecExp[i].Bellato_EXP, StringGrid->Cells[3][i+1].t_str());
			strcpy(vecExp[i].Cora_EXP, StringGrid->Cells[4][i+1].t_str());
			strcpy(vecExp[i].Accretia_EXP, StringGrid->Cells[5][i+1].t_str());
	}
	//--
		AnsiString FullPath = cScriptDir + "//" + name;
		FILE *F = fopen(FullPath.c_str(), "wb");
		fwrite(&this->nBlock, sizeof(int), 1, F);
		fwrite(&this->nColumn, sizeof(int), 1, F);
		fwrite(&this->nSize, sizeof(int), 1, F);

		for(int i=0; i < nBlock; i++)
		{
			fwrite(&vecExp[i], sizeof(strExp), 1, F);
		}
		fclose(F);
}
York вне форума Ответить с цитированием
Старый 14.03.2012, 16:41   #14
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Кстати можешь так же загрузить свой файл в стринглист и читать строки
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 14.03.2012, 16:44   #15
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

У тебя StringGrid, там каждая строка или столбец TStrings, имеющая метод сохранения в файл. Так же можно его и заполнить.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 14.03.2012, 16:48   #16
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
std::auto_ptr<TStringList> List(new TStringList());
в цикле
List->Add(IntToStr(IBeg->nCount)+" "+IBeg->Level+" "+ и так далее);

после цикла
List->SaveToFile(путь);
Ругается на (IBeg->nCount). Непонятная ошибка.

Ау-уу. Ну помогите до конца е мое.

Последний раз редактировалось Stilet; 14.03.2012 в 22:34.
York вне форума Ответить с цитированием
Старый 14.03.2012, 19:07   #17
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
Ругается на (IBeg->nCount). Непонятная ошибка.
????????????????????????????????
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 14.03.2012, 19:17   #18
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

Щас покажу


Последний раз редактировалось Stilet; 14.03.2012 в 22:38.
York вне форума Ответить с цитированием
Старый 14.03.2012, 19:28   #19
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

(int)(IBeg->nCount)
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 14.03.2012, 19:32   #20
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

York вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расширение *.gfx O_o ????? zzzzzz Общие вопросы по Java, Java SE, Kotlin 11 06.06.2018 14:21
External exception EEEFACE. WTF? O_o BingoBongo Общие вопросы Delphi 21 10.01.2014 01:35
QT seaBattle o_O Guzal Помощь студентам 10 07.03.2011 22:25
Вывод в текстовик из батника mephist Помощь студентам 8 08.06.2009 23:35
пишу текстовик. как открыть файл на лету? Deceased Общие вопросы Delphi 17 08.03.2009 16:21