По разделам

 

Решение задачи File 37


Дан файл целых чисел. Удвоить его размер, записав в конец файла все его исходные элементы (в обратном порядке).

Код (Python)

# -*- coding: utf-8 -*-
import random
import sys
import os

def GenerateNumbers(fname):
    N = random.randint(1,20)
    print("N = ",N)
    try:
        f = open(fname, "w")
        for i in range(0,N):
            #x = random.randrange(1,10)
            x = i + 1
            line = str(x)+"\n"
            f.write(line)
        f.close()
    except:
        print("Error: ", sys.exc_info()[0])

def CountFile(fname):
#count number of rows in given text-file 
    N = 0
    try:
        with open(fname,'r') as f:
            for line in f:
                N += 1
                #print(N,":",line)
    except IOError:
        print("Open error:",fname)
        return -1
    finally:
        return N

def GetLineN(fname,N):
    line = ""
    k = 0
    try:
        with open(fname,'r') as f:
            for line in f:
                k += 1
                if k == N:
                    break
    except IOError:
        print('Open error: ',file1)
    return line.strip()

f_input = "file37_in.txt"
f_output = "file37_out.txt"
GenerateNumbers(f_input)
print("Read from:",f_input)
print("Write to:",f_output)

try:
    N = CountFile(f_input)
    print("N:",N)
    
    with open(f_input, 'r') as f_in, open(f_output, 'w') as f_out:
        for line in f_in:
            f_out.write(line)

    with open(f_output, 'a') as f_out:
        while N > 0:
            last_line = GetLineN(f_input,N)
            f_out.write(last_line+"\n")
            N -= 1

except:
    print("Error: ", sys.exc_info())
									

Код (Pascal)

program File37;
var
 S:String;
 F_in,F_out: File of Integer;
 El,i,i2,len:integer;
begin
  Write('File1: ');
  Readln(S);
  Assign(F_in,S);
  Assign(F_out,'~'+S);
  ReWrite(F_out);
  Reset(F_in);
  len:=1;
  while not eof(F_in) do
   begin
    Read(F_in,El);
    Write(F_out,El);
    inc(len);
   end;
  Close(F_in);
  for i:=1 to len-1 do
   begin
    Reset(F_in);
    for i2:=1 to len-i do Read(F_in,El);
    Write(F_out,El);
    Close(F_in);
   end;
  Close(F_out);
  Erase(F_in);
  Rename(F_out,S);
end.
									




File. Абрамян
File 1 Просмотров: 4599
File 2 Просмотров: 3881
File 3 Просмотров: 1822
File 4 Просмотров: 2277
File 5 Просмотров: 1763
File 6 Просмотров: 1568
File 7 Просмотров: 1373
File 8 Просмотров: 1833
File 9 Просмотров: 1087
File 10 Просмотров: 1603
File 11 Просмотров: 1112
File 12 Просмотров: 1255
File 13 Просмотров: 1098
File 14 Просмотров: 976
File 15 Просмотров: 883
File 16 Просмотров: 1131
File 17 Просмотров: 1312
File 18 Просмотров: 907
File 19 Просмотров: 777
File 20 Просмотров: 959
File 21 Просмотров: 816
File 22 Просмотров: 978
File 23 Просмотров: 840
File 24 Просмотров: 836
File 25 Просмотров: 894
File 26 Просмотров: 871
File 27 Просмотров: 739
File 28 Просмотров: 992
File 29 Просмотров: 756
File 30 Просмотров: 838
File 31 Просмотров: 740
File 32 Просмотров: 778
File 33 Просмотров: 850
File 34 Просмотров: 858
File 35 Просмотров: 650
File 36 Просмотров: 746
File 37 Просмотров: 629
File 38 Просмотров: 701
File 39 Просмотров: 718
File 40 Просмотров: 630
File 41 Просмотров: 682
File 42 Просмотров: 842
File 43 Просмотров: 625
File 44 Просмотров: 630
File 45 Просмотров: 693
File 46 Просмотров: 604
File 47 Просмотров: 729
File 48 Просмотров: 851
File 49 Просмотров: 744
File 50 Просмотров: 778
File 51 Просмотров: 757
File 52 Просмотров: 772
File 53 Просмотров: 609
File 54 Просмотров: 587
File 55 Просмотров: 663
File 56 Просмотров: 728
File 57 Просмотров: 561
File 58 Просмотров: 709
File 59 Просмотров: 665
File 60 Просмотров: 1168

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет