Вход

Просмотр полной версии : Как реализовать такую функцию ?


Tapaceuka
02.06.2010, 02:14
В Memo1 находятится:
o
ol
ola
olal
olala

В Memo2 находятся:
1
12
123
1234
12345

И чтоб при нажатии на кнопку она все записала всё в 1 файл в виде:
o;1
o;12
o;123
....
olal;1
olal;12
olal;123

и т.д.

Помогите реализовать такую вот функцию

Ra$cal
02.06.2010, 02:22
вложенные циклы, нэ?

KATYA
02.06.2010, 03:30
using System;
using System.IO;

namespace ololo
{
class ololo
{

public static void Main()
{
/*Если берём из файлов, то раскоментируем две след.
строки, а строки ниже с мемо закомментиркем или удалим.*/
//string[] Memo1 = File.ReadAllLines("Memo1.txt");
//string[] Memo2 = File.ReadAllLines("Memo2.txt");
string[] Memo1 = {"vasya", "petya", "ivan"};
string b = ";";
string[] Memo2 = {"111", "222", "333"};

StreamWriter d = new StreamWriter("out.txt", true);
for (int i = 0; i < Memo1.GetLength(0); i++)
{
for (int j = 0; j < Memo2.GetLength(0); j++)
{
Console.WriteLine(Memo1[i]+b+Memo2[j]);
d.WriteLine(Memo1[i] + b + Memo2[j]);
}

}
d.Close();
Console.ReadLine();



}

}
}



На выходе получим out.txt c содержимым

vasya;111
vasya;222
vasya;333
petya;111
petya;222
petya;333
ivan;111
ivan;222
ivan;333

s0l_ir0n
02.06.2010, 08:43
var
f:textfile;
i:integer;
begin
AssignFile(f,'olo.txt');
Rewrite(f);
For i:=0 to Memo1.Lines.Count do
Writeln(f,Memo1.Strings[i]+';'+Memo2.Strings[2]);
CloseFile(f);
end;
-----------
Писал прям тут, не проверял, но думаю алгоритм ясен

Kaas
02.06.2010, 09:35
Мне больше нравится с LINQ:


var res = (from p in list1
from g in list2
select p+";"+g).ToList();

.::f-duck::.
02.06.2010, 09:39
for (i;i<x;i++)
{
temp[i] = strcat(memo1, memo2);
std::cout << temp[i];}
}
А так?

Ins3t
02.06.2010, 13:12
А так?

Где вы такую траву берете?

Мало того, что этот кусок кода из пяти строк написан с кучей ошибок, так он еще и задачу Топик Стартера не выполнит.

Вот пример на С++:


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::endl;
////////////////////////////////////////////////////////////////////////////////
#include <string>
using std::string;
////////////////////////////////////////////////////////////////////////////////
#include <vector>
using std::vector;
////////////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] ) {
vector < string > memo1( 3 );
memo1.at( 0 ) = "qwe";
memo1.at( 1 ) = "rty";
memo1.at( 2 ) = "uio";

vector < string > memo2( 3 );
memo2.at( 0 ) = "123";
memo2.at( 1 ) = "456";
memo2.at( 2 ) = "789";

for( int i = 0; i < memo1.size(); i++ ) {

for( int k = 0; k < memo2.size(); k++ ) {
cout << memo1[ i ] << ":" << memo2[ k ] << endl;
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////


Если понадобится реализовать с файлами, то есть прочесть два файла и записать итог в третий - пиши в ПМ.

Если нужно на шарпе - смело бери пример KATYA.

s0l_ir0n
02.06.2010, 13:13
кто смелый и напишет на браинфаке?))))

Tapaceuka
02.06.2010, 14:47
все понял как правельнее:

AssignFile(f, 'brute.txt');
ReWrite(f);
for i:=0 to Memo1.Lines.Count-1 do
for j:=0 to Memo2.Lines.Count-1 do
Writeln(f,Memo1.Lines[i]+';'+Memo2.Lines[j]);
Closefile(f);