Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Периписать пхп скрипт на C++ (https://forum.antichat.xyz/showthread.php?t=162997)

Suliman36 12.12.2009 18:55

Периписать пхп скрипт на C++
 
Всем привет, мне нужно переписать пхп скрипт буквально в 15 строк на C++, чтобы его можно было скомпилить на фряхе и ано работало такжекак на пхп,тоесть результат выполнения был такойже
вот код
Код:

<?php
set_time_limit(0);
ignore_user_abort(1);
$array = file('uin.txt');
$count = count($array);
$array2 = file('pass.txt');
$count2 = count($array2);
$fp = fopen('source.txt', 'w');
flock ($fp, LOCK_EX);
for ($n2 = 0; $n2 < $count2; $n2++) {
    for ($n = 0; $n < $count; $n++) {
        fputs($fp, intval($array[$n]).';'.$array2[$n2]);
    }
}
flock ($fp, LOCK_UN);
fclose($fp);
?>

так как я знаю тока пхп,сам немогу переписать
надеюсь тут найдутся добрые люди знающие оба языка и помогут мне...

rudvil 12.12.2009 20:03

Цитата:

Сообщение от Suliman36
Всем привет, мне нужно переписать пхп скрипт буквально в 15 строк на C++, чтобы его можно было скомпилить на фряхе и ано работало такжекак на пхп,тоесть результат выполнения был такойже
вот код
Код:

<?php
set_time_limit(0);
ignore_user_abort(1);
$array = file('uin.txt');
$count = count($array);
$array2 = file('pass.txt');
$count2 = count($array2);
$fp = fopen('source.txt', 'w');
flock ($fp, LOCK_EX);
for ($n2 = 0; $n2 < $count2; $n2++) {
    for ($n = 0; $n < $count; $n++) {
        fputs($fp, intval($array[$n]).';'.$array2[$n2]);
    }
}
flock ($fp, LOCK_UN);
fclose($fp);
?>

так как я знаю тока пхп,сам немогу переписать
надеюсь тут найдутся добрые люди знающие оба языка и помогут мне...

Ты уверен что код написан правильно?
Если в uin.txt будет
Цитата:

usr1
usr2
usr3
и в pass.txt будет
Цитата:

usr1pass
usr2pass
usr2pass
После выполнения скрипта в "source.txt" будет
Цитата:

usr1;usr1pass
usr2;usr1pass
usr3;usr1pass
usr1;usr2pass
usr2;usr2pass
usr3;usr2pass
usr1;usr3pass
usr2;usr3pass
usr3;usr3pass

Suliman36 12.12.2009 20:23

Да именнотак мне и надо,потомучто такой подход на мой взгляд лучше так как будет один пароль пробоваться ко всем номерам,потом другой ко всем и так далее, хотя можно написать 2 версии

rudvil 12.12.2009 20:49

Вот, как на php
Код:

#include <iostream>
#include <string>
#include <fstream>

int main (int argc, char* argv[]) {
    std::string source, line, uin, pass;
    std::ifstream uinFile("uin.txt");
    std::ifstream passFile("pass.txt");
    std::ofstream sourceFile("source.txt");
    if (!uinFile.is_open()) {
        std::cout << "Unable to open file uin.txt\n";
        return 1;
    }
    if (!passFile.is_open()) {
        std::cout << "Unable to open file pass.txt\n";
        return 1;
    }
    if (!sourceFile.is_open()) {
        std::cout << "Unable to open file source.txt\n";
        return 1;
    }
    while (!passFile.eof()) {
        line = "";
        getline(passFile, pass);
        while (!uinFile.eof()) {
            getline(uinFile, uin);
            line += uin + ";" + pass + "\n";
        }
        source += line;
        uinFile.seekg(std::ios::beg);
    }
    sourceFile << source;
    uinFile.close();
    passFile.close();
    sourceFile.close();
    return 0;
}


Suliman36 13.12.2009 00:01

Чета ано нихочет компилицо
скопировал все как ты написал, но компилятор выдает ошибки
почиму так?
Ошибки выдает чтота связанное с синтаксисом...
Может это написанно под винду, а ме нужно под FreeBSD...
Может быть есть какие различия в том как нужно писать?

rudvil 13.12.2009 01:17

Цитата:

Сообщение от Suliman36
Чета ано нихочет компилицо
скопировал все как ты написал, но компилятор выдает ошибки
почиму так?
Ошибки выдает чтота связанное с синтаксисом...
Может это написанно под винду, а ме нужно под FreeBSD...
Может быть есть какие различия в том как нужно писать?

Может имеет смысл показать что конкретно пишет компилятор? тут не экстрасенсы...

Suliman36 13.12.2009 02:09

# gcc -pthread list.c -o list
list.c:1:22: iostream.h: No such file or directory
list.c:3:21: fstream.h: No such file or directory
list.c: In function `main':
list.c:6: error: syntax error before ':' token
list.c:7: error: syntax error before ':' token
list.c:8: error: syntax error before ':' token
list.c:9: error: syntax error before ':' token
list.c:10: error: `uinFile' undeclared (first use in this function)
list.c:10: error: (Each undeclared identifier is reported only once
list.c:10: error: for each function it appears in.)
list.c:11: error: syntax error before ':' token
list.c:14: error: `passFile' undeclared (first use in this function)
list.c:15: error: syntax error before ':' token
list.c:18: error: `sourceFile' undeclared (first use in this function)
list.c:19: error: syntax error before ':' token
list.c:23: error: `line' undeclared (first use in this function)
list.c:24: error: `pass' undeclared (first use in this function)
list.c:26: error: `uin' undeclared (first use in this function)
list.c:29: error: `source' undeclared (first use in this function)
list.c:30: error: `std' undeclared (first use in this function)
list.c:30: error: syntax error before ':' token

rudvil 13.12.2009 02:21

У меня на win mingw все компилит на ура...
Меня смущает вот что
Цитата:

list.c:1:22: iostream.h: No such file or directory
list.c:3:21: fstream.h: No such file or directory
Попробуй скомпилить мой код не изменяя его.
з.ы. мб версия компилятора старая?

Suliman36 13.12.2009 02:38

# cat list.c

Код:

#include <iostream>
#include <string>
#include <fstream>

int main (int argc, char* argv[]) {
    std::string source, line, uin, pass;
    std::ifstream uinFile("uin.txt");
    std::ifstream passFile("pass.txt");
    std::ofstream sourceFile("source.txt");
    if (!uinFile.is_open()) {
        std::cout << "Unable to open file uin.txt\n";
        return 1;
    }
    if (!passFile.is_open()) {
        std::cout << "Unable to open file pass.txt\n";
        return 1;
    }
    if (!sourceFile.is_open()) {
        std::cout << "Unable to open file source.txt\n";
        return 1;
    }
    while (!passFile.eof()) {
        line = "";
        getline(passFile, pass);
        while (!uinFile.eof()) {
            getline(uinFile, uin);
            line += uin + ";" + pass + "\n";
        }
        source += line;
        uinFile.seekg(std::ios::beg);
    }
    sourceFile << source;
    uinFile.close();
    passFile.close();
    sourceFile.close();
    return 0;
}

# gcc -pthread list.c -o list
Цитата:

list.c:1:20: iostream: No such file or directory
list.c:2:18: string: No such file or directory
list.c:3:19: fstream: No such file or directory
list.c: In function `main':
list.c:6: error: syntax error before ':' token
list.c:7: error: syntax error before ':' token
list.c:8: error: syntax error before ':' token
list.c:9: error: syntax error before ':' token
list.c:10: error: `uinFile' undeclared (first use in this function)
list.c:10: error: (Each undeclared identifier is reported only once
list.c:10: error: for each function it appears in.)
list.c:11: error: syntax error before ':' token
list.c:14: error: `passFile' undeclared (first use in this function)
list.c:15: error: syntax error before ':' token
list.c:18: error: `sourceFile' undeclared (first use in this function)
list.c:19: error: syntax error before ':' token
list.c:23: error: `line' undeclared (first use in this function)
list.c:24: error: `pass' undeclared (first use in this function)
list.c:26: error: `uin' undeclared (first use in this function)
list.c:29: error: `source' undeclared (first use in this function)
list.c:30: error: `std' undeclared (first use in this function)
list.c:30: error: syntax error before ':' token
Какая версия компилятора я даже и незнаю...

rudvil 13.12.2009 02:43

Понятно, ты компилируешь исходник С++ в С - компиляторе.
Попробуй вместо gcc написать g++


Время: 14:57