Форум: "Потрепаться";
Текущий архив: 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