Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Вниз

Помогите разобраться с файлами   Найти похожие ветки 

 
Zhenka   (2003-08-12 09:11) [0]

Задача такова
Существуют два файла ф1 и ф2
ф1 выглядит так
5
2,0002 2,6578
2,5986 3,5847
6,3258 1,3366
88
2,5698 9,2358
9,2358 4,2365
7,1235 5,3247
11
3,2589 4,2598
5,2365 6,2248
ИТД

Ф2 ВЫГЛЯДИТ ТАК

15
4
57
(КОЛ-ВО СТОЛБЦОВ РАВНО КОЛ-ВУ ЦЕЛЫХ ЭЛЕМЕНТОВ В ПЕРВОМ СЛОЛБЦЕ Ф1)

НУЖНО СОЗДАТЬ ТРЕТИЙ ФАЙЛ ВИДА

5 2,0002 2,6578 15
5 2,5986 3,5847 15
5 6,3258 1,3366 15
88 2,5698 9,2358 4
88 9,2358 4,2365 4
88 7,1235 5,3247 4
11 3,2589 4,2598 57
11 5,2365 6,2248 57


 
Ru   (2003-08-12 09:55) [1]

procedure putinto3(filename1, filename2, outputfile:string);
//filename1 - путь к первому файлу
//filename2 - путь ко второму файлу
//outputfile - путь к файлу результату
var
f1,f2,fr:textfile;
tmps,tmps2,outs:string;
begin
assign(f1, filename1);
assign(f2, filename2);
assign(fr, outputfile);

reset(f1);
reset(f2);
rewrite(fr);

while (not eof(f1)) and (not eof(f2)) do begin
readln(f1,tmps);
if frac(strtoint(tmps)) <> 0 then begin
readln(f2,tmps2);
//outs:=outs+" "+tmps2;
{верхнюю строчку разкоментировать, если не будет работать запись (строка ниже), а в записи оставить только outs}
writeln(fr, outs+" "+tmps2);
outs:=tmps;
end else outs:=outs+" "+tmps;
end;

closefile(f1);
closefile(f2);
closefile(fr);
end;

ps если не ошибаюсь, то можно упростить, но мне лень


 
Zhenka   (2003-08-13 15:56) [2]

не работает.
if frac(strtointtrim((tmps))) <> 0 then beginтак лучше, но всеоавно не работает


 
Ru   (2003-08-13 16:00) [3]

>Zhenka © (13.08.03 15:56) [2]

ой. строку:
if frac(strtoint(tmps)) <> 0 then begin
заменить на:
if frac(strtofloat(tmps)) <> 0 then begin


 
хм   (2003-08-13 16:07) [4]

Assign File?


 
Ru   (2003-08-13 16:17) [5]

>хм © (13.08.03 16:07) [4]

и это пожалуй тоже.


 
Zhenka   (2003-08-13 16:21) [6]

if frac(strtofloat(Trim((tmps))) <> 0 then begin !!
теперь пишет то что эти числа -
2,0002 2,6578 not a valid floating point value


 
Vlad Oshin   (2003-08-13 16:23) [7]

:)

qwwe:
readln(f1,s);

из S выкинуть |

val(не помню, короче попытка преоюразовать в число s.)
если ошибка
то это строка типа 27946.417969 30403.597656
а не типа 11
(f2,s) [13]

qwwe:
readln(Ф1,s);

val(не помню, короче попытка преоюразовать в число s.)
если ошибка
то это строка типа 27946.417969 30403.597656
а не типа 11
s1:=s; goto qwwe;
иначе
readln(Ф2,s3);
s:=s1+" "+s+" "+s3;
wrteln(f_наш,s);


 
Zhenka   (2003-08-13 16:34) [8]

2 Vlad Oshin
Будь любезен конкретный пример, пожалуйста. Очень надо.
Спасибо.


 
Ru   (2003-08-13 17:13) [9]

procedure putinto3(filename1, filename2, outputfile:string);
//filename1 - путь к первому файлу
//filename2 - путь ко второму файлу
//outputfile - путь к файлу результату
var
f1,f2,fr:textfile;
tmps,tmps2,outs:string;
begin
assignfile(f1, filename1);
assignfile(f2, filename2);
assignfile(fr, outputfile);

reset(f1);
reset(f2);
rewrite(fr);

while (not eof(f1)) and (not eof(f2)) do begin
readln(f1,tmps);
if pos(" ",tmps) = 0 then begin //если есть пробел, то это не число
if frac(strtofloat(tmps)) <> 0 then begin
readln(f2,tmps2);
writeln(fr, outs+" "+tmps2);
outs:=tmps;
end else outs:=outs+" "+tmps;
end else outs:=outs+" "+tmps;
end;

closefile(f1);
closefile(f2);
closefile(fr);
end;


 
Zhenka   (2003-08-14 10:02) [10]

2 RU
всё равно не прёт ту же ошибку пишет.


 
Ru   (2003-08-14 10:23) [11]

>Zhenka © (14.08.03 10:02) [10]

в файле: 2 ,0002 а должно быть: 2 .0002


 
Zhenka   (2003-08-14 10:42) [12]

а ну!! ща гляну


 
Zhenka   (2003-08-14 10:47) [13]

не нифига та же борода


 
Ru   (2003-08-14 13:20) [14]

>Zhenka © (14.08.03 10:47) [13]

1. мне лень
2. там куча ошибок
3. см. п.1.


 
Zhenka   (2003-08-14 14:04) [15]

xopoшо, но я толком что то не всё разбираю


 
Anatoly Podgoretsky   (2003-08-14 15:14) [16]

Ru © (14.08.03 10:23) [11]
Не поможет
2.0002 2.6578
все равно будет неправиное число


 
Zhenka   (2003-08-16 12:29) [17]

2 Anatoly P
Совершенно верно
как быть то???


 
Anatoly Podgoretsky   (2003-08-16 12:48) [18]

Тут просто два числа


 
Ru   (2003-08-18 10:30) [19]

Мне становится страшно за этот мир, когда я встречаю людей ленивей себя:

procedure fuckfile(FNameIn1, FNameIn2, FNameOut:string);
var
f1,f2,fout:textfile;
tmps,tmps2,outs,f:string;
begin
assignfile(f1,FNameIn1);
assignfile(f2,FNameIn2);
assignfile(fout,FNameOut);

reset(f1);
reset(f2);
rewrite(fout);

while not eof(f1) do begin
readln(f1,tmps);
if pos(" ", tmps)<>0 then begin
readln(f2,tmps2);
while pos(" ", tmps)<>0 do begin
outs:=f+" "+tmps+" "+tmps2;
writeln(fout,outs);
readln(f1,tmps);
end;
end else if pos(".", tmps)=0 then begin
f:=tmps;
end;
end;

closefile(f1);
closefile(f2);
closefile(fout);
end;


 
Ru   (2003-08-18 14:19) [20]

Hell o


 
Zhenka   (2003-08-18 14:25) [21]

Спасибо РУУУ
я уже всё сделал, но всё же спасибо за заботу



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.009 c
1-10803
Shirson
2003-08-22 09:00
2003.09.04
Как обратиться к переменной в MDI-Форме?


1-10743
uhhax
2003-08-20 02:04
2003.09.04
TCheckListBox и TMemo


14-10971
Soft
2003-08-15 12:07
2003.09.04
Флеш-Проект


14-10896
Dmk
2003-08-17 14:41
2003.09.04
Net messanger


4-11013
Nick Denry
2003-07-05 20:49
2003.09.04
9x и wm_devicechange. в SDK написано -нет такой мессаги в 9x





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский