понедельник, 28 февраля 2011 г.

Немного ООП Pyhton-a


Задание: Вывести количество слов и  предложений в строке, также вывести количество артиклей таких как THE и A, вывести строку убрав пробелы.
ВОТ В ПРИНЦИПЕ И САМ КОД:

# -*- coding: cp1251 -*-
import re
class some:
    art=["a","the"]
    def __init__(self,stroka):
        self.r=stroka
        self.splited = stroka.split(".")
        self.nsent = len(self.splited)
        print (self.r)        
    def p(self):
        for i in self.splited:
             pass
        print("Number of sentences: ")
        print (self.nsent-1)
    def pW(self):
        self.splited=self.r.split(" ")
        self.nsent=len(self.splited)
        for a in self.splited:
           pass
        print ("Number of words: ")
        print(self.nsent)
    def pA(self):
        print ("article THE in string :")
        print (self.r.upper().count(" THE "))
        print ("article A in string :")
        print (self.r.upper().count(" A "))         
        pass
    def wS(self):
        print(self.r.replace(' ',''))               
print("Заданная строка")
x=some("Hello world. Just A Hello the world, but the not use'd. Just a hello the world.")
x.p()
x.pW()
x.pA()
x.wS()

З.Ы. КОД ДОРАБОТАН !!!!  

четверг, 3 февраля 2011 г.

Копирование директорий на С++.... проще наверно не бывает.

Просидев несколько дней за программой для копирования директторий на Linux, я всё таки дошел до понимания её логики. Тоесть нам для копирования дерева каталогов, нужно выполнять рекурсию по определению типа (каталог или папка), и для переноса файлов в новые создаваемые папки.
Вобщем вот он долгожданный код, но вылаживаю всеголишь его часть!!!

static void dir_copy(char* src_path, char* dst_path) {
    struct dirent *entry;
    struct stat eStat;
    DIR *src_dir;
    char* realFileName = new char[MAX_PATH];
    char temp[MAX_PATH], tempto[MAX_PATH];
    strcpy(temp, src_path);
    strcpy(tempto, dst_path);
    lstat(src_path, &eStat);
    if (S_ISDIR(eStat.st_mode)) {
        mkdir(dst_path, 0777);
        if (src_dir = opendir(src_path)) {
            while ((entry = readdir(src_dir)) != NULL) {
                if (strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0) {
                    continue;
                }

                strcpy(realFileName, src_path);
                strcat(realFileName, "/");
                strcat(realFileName, entry->d_name);
                stat(realFileName, &eStat);
                if (S_ISDIR(eStat.st_mode)) {
                    sprintf(temp, "%s/%s", src_path, entry->d_name);
                    sprintf(tempto, "%s/%s", dst_path, entry->d_name);
                    mkdir(tempto, 0777);
                    dir_copy(temp, tempto);
                } else {
                    sprintf(temp, "%s/%s", src_path, entry->d_name);
                    sprintf(tempto, "%s/%s", dst_path, entry->d_name);
                    file_copy(temp, tempto);
                }
            }
            closedir(src_dir);

        }
    } else {
        sprintf(temp, "%s", src_path);
        sprintf(tempto, "%s", dst_path);
        file_copy(temp, tempto);
    }
}


Не хватает копирования файлов, и чтение из других директорий !!!