Трансляция из Delphi в С++ BuilderВыручайте!
Текущий рейтинг темы: Нет
Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 11:32
Очень надо срочно перегнать небольшой фрагмент Delphi-кода в С++ Builder. Код следующий:
procedure TForm1.Button1Click(Sender: TObject);
var
f:textfile;
i,r:byte;
st:string;
begin
randomize;
i:=0;
assignfile(f,'index.txt');
reset(f);
Memo1.Lines.Clear;
Memo2.Lines.Clear;
Memo3.Lines.Clear;
st:='';
r:=1+(random(73));
Label2.Caption:=IntToStr®;
for i:=1 to ((r-1)*3) do readln(f,st);
readln(f,st);
Memo1.Lines.Text:=st;
st:='';
readln(f,st);
Memo2.Lines.Text:=st;
st:='';
readln(f,st);
Memo3.Lines.Text:=st;
st:='';
i:=0;
end;
end. | | |
wsx
Модератор раздела
Юниксойд, сетевик
Откуда: Казань Всего сообщений: 1074 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 11:36
ну ты код чтоль Нормально напиши! с отступами и прочим! А я уж попытаюсь вспомнить Builder...
Читать не возможно! | | |
wsx
Модератор раздела
Юниксойд, сетевик
Откуда: Казань Всего сообщений: 1074 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 11:37
Да и менять ту не чего!
Вот смари!
MemoX->Lines->Text='Text';
Вроде чё то такое! не помню я, давно это было и не правдой...
| | |
Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 11:44 Сообщение отредактировано: 24 июня 2005 11:46
Да я с отступами писал, а тема все равно по левой стенке пошла. А мне неправду не надо. Мы люди честные. Значит, пойдем пошагово.
1. Какой аналог в С++ у: assignfile(f,'index.txt');
2. Какой аналог: reset(f);
3. Какой аналог: readln(f,st);
А штука с MemoX->Lines-> ... не пойдет, мне же каждое поле Memo нужно заполнять строкой из текстового файла.
| | |
wsx
Модератор раздела
Юниксойд, сетевик
Откуда: Казань Всего сообщений: 1074 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 12:06
Ну бля! я тебе про синтаксис!! А ты про баранов....
Ладно! нажимай F1, там пиши assignfile...
Кстати, помоему там работает Assignfile...Просто ты не верно оформляешь....
Да и reset(f); - должен работать !
А вот насчёт readln,a не знаю...
Эээ..кстати )
Memo1.Lines.LoadFromFile('file');
на си будет типа того же:
Memo1->Lines->LoadFromFile('File');
гыы.. | | |
Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 12:12
Гражданин, не ругайтесь матом! Ну не знаю я С, вообще не знаю...Первый раз сегодня увидел. Я хелп не устанавливал, файлы были поврежденные. | | |
wsx
Модератор раздела
Юниксойд, сетевик
Откуда: Казань Всего сообщений: 1074 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 12:40
Ну насччёт мата, это он у меня на автомате уже :(((
Я и не ругаюсь.. Но Хелп - нуно устанавливать! ) | | |
Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 12:51
Я знаю, что хелп - это есть хорошо. Но я ж кажу, что файлы повреждены, пришлось ставить как есть. Теперь говорит, что не хватает файла bcb6.hlp. Где его взять-то, а? Насчет reset выяснил, что просто в процедуре чтения файла указывается атрибут r, а вот про само чтение нифига не нашел. | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 22:35
Jaxx Для того, чтобы ничего не съезжало, пользуйся тегом code (см. ссылку BoardCode в форме отправки сообщений), он сохраняет (по крайней мере, должен) все пробелы.
По поводу переноса: вообще, Borland C Builer (по крайней мере последние версии) может использовать DCU-файлы от Delphi.
wsx Употреблять мат без наличия обоснованной необходимости (а ее в данный момент не наблюдалось) действительно не советую. Как говорится, фильтруй базар.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 24 июня 2005 22:41
По поводу функций: их прямых эквивалентов в C нет, вместо них используются функции fopen, fread, fclose, у которых несколько иные параметры.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
Jaxx
Участник Проекта
Дикий прапор
Откуда: Belarus Всего сообщений: 173 Рейтинг пользователя: 10 Дата регистрации на форуме: 13 мая 2005
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 28 июня 2005 14:04 Сообщение отредактировано: 28 июня 2005 14:06
Ну как файл прочитать, я разобрался. Написал вот что:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
file f;
unsigned char i,r;
char* st;
Randomize;
i=0;
r=1+rand()%73;
Label2->Caption=r;
Memo1->Lines->Clear();
Memo2->Lines->Clear();
Memo3->Lines->Clear();
st="";
std::ifstream ist("Index.txt");
Memo1->Lines->LoadFromFile("Index.txt");
}
А как прочитать не все подряд, а определенные строки? | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 28 июня 2005 23:47
Если уж ты пошел по такому пути, то предлагаю поступить следующим образом: читать весь файл, а потом удалять ненужное. Т.е. что-то вроде Memo1->Lines->Delete(номер). Либо все же разбираться с функциями fopen, fwrite, fread, fclose....
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | |
Nerd
Новичок
Откуда: Cherepovets Всего сообщений: 3 Рейтинг пользователя: 2 Дата регистрации на форуме: 20 мар. 2006
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 20 марта 2006 21:24
поясню
объявление:
FILE *<поток>;
FILE *f;
Открытие
fopen();
<поток> = fopen("путь к файлу", "тип")
тип указывется, как должен использоваться файл
r - открыть для чтения;
w - для записи;
w+ - для чтения и записи;
и т.д
Ввод и вывод данных в файл
getc();
putch();
соответсвенно посимвольно....
fgets();
fputs();
соответсвенно построчно
getw();
putw();
для целых
--- // наСИльник и дельфинист
| | |
Время выполнения скрипта: 0.0419. Количество выполненных запросов: 18, время выполнения запросов 0.0291
|