Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
1-10691
frost
2003-08-21 08:19
2003.09.04
TreeView и текст связанный с каждым узлом дерева


3-10617
Alexy
2003-08-13 12:09
2003.09.04
Пропадают записи в таблицах


14-10931
Soft
2003-08-16 18:36
2003.09.04
На начальном этапе есть шанс заработать до 100% в месяц, а далее


7-10998
b0b
2003-06-17 17:45
2003.09.04
настройки принтера


7-10996
AndrewVolkov
2003-06-20 10:48
2003.09.04
Com считывание