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

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

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

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

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

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

Как сделать чтобы у меня в текстовике при записи char[64] он выделял место ровно под 64 байта?

T.e если грубо говоря vecExp[1].Name = "Привет!";
А в файле надо чтобы писал так - "Привет! + куча 64-7=57 пробелов"??

Мне просто обратно в векторы загонять надо будет

Заменил пробел знаком табуляции, получилось вот что
http://s019.radikal.ru/i604/1203/c4/45cae0d52254.jpg

12148 вместо пробела должного, код такой

Код:
		case 0:
		{
			DWORD lpNumberOfBytesWritten;
			AnsiString FullPath = cScriptDir+"//"+name;
			HANDLE F = CreateFile(FullPath.c_str() , GENERIC_WRITE, 0, NULL,
							CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

			std::auto_ptr<TStringList> List(new TStringList());

			IAmulet IBeg(vecAmulet.begin());
			IAmulet IEnd(vecAmulet.end());
			for(;IBeg != IEnd;++IBeg)
			{
			List->Add(IntToStr((int)(IBeg->Index))+'/t'+IBeg->Code+'/t/t'+IntToStr((int)(IBeg->Exist))+" "
			+IBeg->Model+'/t'+IntToStr((int)(IBeg->IconIDX))+'/t'+IBeg->Name+'/t'+IntToStr((int)(IBeg->KindClt))+" "
			+IntToStr((int)(IBeg->ItemGrade))+'/t'+IntToStr((int)(IBeg->FixPart))+'/t'+IBeg->Civil+" "
			+IntToStr((int)(IBeg->LevelLim))+'/t'+IntToStr((int)(IBeg->UpLevelLim))+'/t'+IntToStr((int)(IBeg->ClassGradeLim))+" "
			+IntToStr((int)(IBeg->Money))+'/t'+IntToStr((int)(IBeg->StdPrice))+'/t'+IntToStr((int)(IBeg->StdPoint))+" "
			+IntToStr((int)(IBeg->StoragePrice))+'/t'+IntToStr((int)(IBeg->Abr))+'/t'+IntToStr((int)(IBeg->EffState))+" "
			+FloatToStr((float)(IBeg->FireTol))+'/t'+FloatToStr((float)(IBeg->WaterTol))+'/t'+FloatToStr((float)(IBeg->SoilTol))+" "
			+FloatToStr((float)(IBeg->WindTol))+'/t'+IntToStr((int)(IBeg->Eff1Code))+'/t'+FloatToStr((float)(IBeg->Eff1Unit))+" "
			+IntToStr((int)(IBeg->Eff2Code))+'/t'+FloatToStr((float)(IBeg->Eff2Unit))+" "
			+IntToStr((int)(IBeg->Eff3Code))+'/t'+FloatToStr((float)(IBeg->Eff3Unit))+" "
			+IntToStr((int)(IBeg->Eff4Code))+'/t'+FloatToStr((float)(IBeg->Eff4Unit))+'/t'+IntToStr((int)(IBeg->Sell))+" "
			+IntToStr((int)(IBeg->Exchange))+'/t'+IntToStr((int)(IBeg->Ground))+'/t'+IntToStr((int)(IBeg->StoragePossible))+" "
			+IntToStr((int)(IBeg->UseableNormalAcc))+'/t'+IBeg->TooltipIndex+'/t'+IntToStr((int)(IBeg->IsCash))+'/t'+IntToStr((int)(IBeg->IsTime)));
			}
			CloseHandle(F);
			List->SaveToFile(FullPath);
		}break;

Последний раз редактировалось York; 16.03.2012 в 00:26.
York вне форума Ответить с цитированием
Старый 15.03.2012, 21:59   #32
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Так, я не поняла, я что, не понятно объяснила по поводу того, что не стоит плодить сообщения, а нужно дописывать в свое предыдущее, если после вас еще никто не ответил? Ок, я исправлюсь, ща все понятно будет.

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

Последний раз редактировалось ACE Valery; 15.03.2012 в 22:03.
ACE Valery вне форума Ответить с цитированием
Старый 16.03.2012, 10:46   #33
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

где-то в конструкторе:
ZeroMemory(Name,64);

где-то в коде:
strcpy(vecExp[1].Name,"Привет!");

где-то сохраняя все в файл:
int CountSpaceBar = 64-strlen(vecExp[1].Name);
for(; CountSpaceBar<64;CountSpaceBar++)
{
vecExp[1].Name[CountSpaceBar] = ' '; //здесь между кавычками - пробел
}

выделенное лучше оформить в виде отдельной функции, в качестве параметра принимающую указатель на массив char-ов.


Убери уже наконец из кода
Цитата:
HANDLE F = CreateFile(FullPath.c_str() , GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
и

Цитата:
CloseHandle(F);
не позорься.
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 16.03.2012 в 10:49. Причина: совет
Krok27 вне форума Ответить с цитированием
Старый 16.03.2012, 12:51   #34
York
Пользователь
 
Регистрация: 23.02.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
где-то в конструкторе:
ZeroMemory(Name,64);

где-то в коде:
strcpy(vecExp[1].Name,"Привет!");

где-то сохраняя все в файл:
int CountSpaceBar = 64-strlen(vecExp[1].Name);
for(; CountSpaceBar<64;CountSpaceBar++)
{
vecExp[1].Name[CountSpaceBar] = ' '; //здесь между кавычками - пробел
}

выделенное лучше оформить в виде отдельной функции, в качестве параметра принимающую указатель на массив char-ов.


Убери уже наконец из кода

и


не позорься.
Нужно знаки табуляции настроить, выше скрин и проблема.
York вне форума Ответить с цитированием
Старый 20.03.2012, 14:53   #35
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