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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 22:28   #11
lesimel
 
Регистрация: 06.12.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от rockedit Посмотреть сообщение
Вот вариант с использованием визуальных компонентов, в этом примере в компонент Memo1 загружаеться файл test.txt который находиться в том же каталоге что и исполняемый файл, и после обработки в Memo1 пишется результат. n я задал программно, но можно и при помоши компонента Edit. Единственная проблема в том, что назад пишеться вес содержимое массива, т.е. быдет муссор в конце строки . я не спец в си, написал исходя из того что умею, так что не судите строго)
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int n,k,i;
 char out[30];
 char *s;
 k = 0;
 n = 100;
 Memo1->Lines->LoadFromFile("test.txt");
 s = Memo1->Text.c_str();
 for (i = 0; i < strlen(s); i++) {
	  if (i % n == 0) {
		  out[k] = s[i];
		  k++;
	  }
 }

 Memo1->Lines->Clear();

 Memo1->Text = out;

 }
Я сегодня целый день голову ломала как можно мусор убрать )))), потом доперло
lesimel вне форума Ответить с цитированием
Старый 21.12.2009, 02:56   #12
lesimel
 
Регистрация: 06.12.2009
Сообщений: 9
По умолчанию

Код:
#include <vcl.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
  Memo1->Lines->LoadFromFile("test.txt");
 //s = Memo1->Text.c_str();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n,k,i,j;
 char out[300];
// char *s;
 k = 0;
  AnsiString u;

		  u = Ed -> Text;
		  n=atoi(u.c_str());

		if (n==0)
			   {
				MessageDlg("  Не корректный ввод данных!   ",  // Условие для корректного ввода
				   mtInformation, TMsgDlgButtons() << mbOK, NULL);
				   return;
			   }

		   n=atoi(u.c_str());
// s = Memo1->Text.c_str();
 u = Memo1->Text;
 j = u.Length();
 for (i = 1, k =0; i < j; i++) {
	  if (i % n == 0) {
		  out[k]= u[i];
		  k++;
	  }
 }
 out[k] = 0x00;
 Memo2->Lines->Clear();
 Memo2->Text = out;
}
//---------------------------------------------------------------------------
Вот что получилось в итоге
lesimel вне форума Ответить с цитированием
Старый 21.12.2009, 09:09   #13
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от forsaken66 Посмотреть сообщение
Есть в С++ функции произвольного доступа (seekg(), seekp()), которые позволяют считать или записать данные с любого места в файле. Т. е. обычно доступ к содержимому файла осуществляется последовательно, байт за байтом. Но seekg(), seekp() позоляют переместить указатель в нужное место.
На практике как то так

Код:
//ввод k (100 к примеру) и открытие файлового потока (out) в режиме бинарного доступа
out.seekp(k,ios::beg);
//запись символа в файл
k+=k;
по моему так
Надежнее побайтово читать что-то я не уверен на 100 % что каждый символ 1 байт занимает, кажется интер например да, потому что там возврат каретки и перевод на новую строку
Не говорю, что неправильно, но говорю как надежнее, т.к. в задании не побайтово читать надо а посимвольно!
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи:) valiza Помощь студентам 0 03.07.2009 11:58
Прошу помощи! hijke Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2009 18:04
прошу помощи ex-hack Помощь студентам 2 05.06.2009 15:54
Прошу помощи. Brian Lee Jones Свободное общение 0 19.06.2008 00:21
Прошу помощи!!! Oksana Общие вопросы Delphi 3 03.03.2007 12:51