Вопрос № 87088: есть текстовый файл с данными:
фамилия
возраст
положение
фамилия
возраст
итд...
как найти и удалить одного человека?
как организовать построчное(а не посимвольное) чтение?...Вопрос № 87131: Мир в Ваш дом, уважаемые эксперты!
Имею смелость спросить об одной вещи.
C++ Builder 6.0. У меня есть компонент класса TPaintBox, в нем кое-что изображается. Мне нужно это сохранить в графический файл.
Есть такая идея. Создаем перем...Вопрос № 87150: Не получается написать прогграмму, которая задает вопрос тестирующему лицу, а он должен с клавиатуры ввести ответ(слово)....
Вопрос № 87.088
есть текстовый файл с данными:
фамилия
возраст
положение
фамилия
возраст
итд...
как найти и удалить одного человека?
как организовать построчное(а не посимвольное) чтение?
Отвечает: Vest
Здравствуйте, Радзевич Иван Сергеевич!
Надо искать построчно и условно каждая третья строка (0, 3, 6) - это фамилия. То есть сравнивая её ты найдёшь нужного тебе человека. Удалить сложнее, так как просто так не удалить, а нужно создать пустой файл, скопировать в него ДО твоего человека, пропустить его и добавить ПОСЛЕ него остальных. Только так.
Построчно чтение можно организовать либо с использованием C++ потоков:
ifstream f("my.txt");
while (!f.eof())
{
f.getline(....);
}
или с помощью С-функций (прости, скопировал с MSDN)
Ответ отправил: Vest (статус: 4-ый класс)
Ответ отправлен: 16.05.2007, 01:38
Отвечает: Mister Vova
Здравствуйте, Радзевич Иван Сергеевич!
FILE* MyFile
if ((MyFile = fopen("d:\map\file.txt", "rt"))== NULL) printf("Error");
/* vot kak */ fscanf(MyFile,"%s%d%s",&Fam,&voztast,&polojenie);
--------- Всё про Себя Тут Www.SahajaYoga.Ru
Ответ отправил: Mister Vova (статус: 3-ий класс)
Ответ отправлен: 16.05.2007, 15:23
Отвечает: Ilkras
Здравствуйте, Радзевич Иван Сергеевич!
построчное считывание реализовано стандартной функцией char *fgets( char *str, int n, FILE *stream); (<stdio.h>)
Как удалить блок записей относящихся к одному человеку:
читаете построчно файл, сравниваете фамилию с заданой, в случае совпадения стираете столько строк сколько занимает один блок (от фамилии до фамилии).
Как стереть строчку:
Можно построчно переписать один файл в другой игнорируя строку с известным заранее номером.
Ответ отправил: Ilkras (статус: 9-ый класс)
Ответ отправлен: 16.05.2007, 23:09
Отвечает: Ross
Здравствуйте, Радзевич Иван Сергеевич!
Если использовать потоки(fstream.h), то построчно файл удобно читать так:
ifstream inp_file("input.txt");
char str[256];
while (inp_file.getline(str,256))
{
//---делаем что-нибудь со считанной строкой
}
тогда цикл будет выполняться пока считываются строки и не нужно проверок на eof
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: 9-ый класс)
Ответ отправлен: 17.05.2007, 00:09
Вопрос № 87.131
Мир в Ваш дом, уважаемые эксперты!
Имею смелость спросить об одной вещи.
C++ Builder 6.0. У меня есть компонент класса TPaintBox, в нем кое-что изображается. Мне нужно это сохранить в графический файл.
Есть такая идея. Создаем переменную типа TImage, в нее заносим все изображенное в PaintBox'е, и уже тогда сохраняем ее в файл. Но проблема в том, как скопировать канву PaintBox'а в переменную типа TImage.
TImage *img = new TImage(0);
//img->Canvas = PaintBox1->Canvas;
//ошибка: 'TImage::Canvas' is not accessible
Немного изменю.. проверить правда не могу... но вроде всё правильно, программа сравнивает ввёдный ответ с обзазцом и выводит ОК если правильно иначе NO :
#include <stdio.h>
#include <conio.h>
void main()
{
char * otv;
puts("Vvedite otvet na vopros");
gets(otv);
if (otv=="otvet") {puts("OK!");} else { puts("NO!");};
}
Ответ отправил: menand (статус: Студент)
Ответ отправлен: 16.05.2007, 20:01
Отвечает: kool
Здравствуйте, Костюченко Нина Сергеевна!
Приблизительно как в приложении.
Приложение:
--------- I am.
Ответ отправил: kool (статус: Студент)
Ответ отправлен: 16.05.2007, 20:52
Отвечает: Ilkras
Здравствуйте, Костюченко Нина Сергеевна!
можно это сделать например так:
Приложение:
Ответ отправил: Ilkras (статус: 9-ый класс)
Ответ отправлен: 16.05.2007, 23:02