Как реализовать такую функцию ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Tapaceuka, 2 Jun 2010.

  1. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    В 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

    и т.д.

    Помогите реализовать такую вот функцию
     
  2. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    вложенные циклы, нэ?
     
  3. KATYA

    KATYA Active Member

    Joined:
    9 Feb 2009
    Messages:
    236
    Likes Received:
    121
    Reputations:
    9
    PHP:
    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 0Memo1.GetLength(0); i++)
                {
                    for (
    int j 0Memo2.GetLength(0); j++)
                    {
                        
    Console.WriteLine(Memo1[i]+b+Memo2[j]);
                        
    d.WriteLine(Memo1[i] + 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
     
    #3 KATYA, 2 Jun 2010
    Last edited: 2 Jun 2010
    2 people like this.
  4. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    var
    f:textfile;
    i:integer;
    begin
    AssignFile(f,'olo.txt');
    Rewrite(f);
    For i:=0 to Memo1.Lines.Count do
    Writeln(f,Memo1.Strings+';'+Memo2.Strings[2]);
    CloseFile(f);
    end;
    -----------
    Писал прям тут, не проверял, но думаю алгоритм ясен
     
  5. Kaas

    Kaas Elder - Старейшина

    Joined:
    13 Feb 2007
    Messages:
    31
    Likes Received:
    5
    Reputations:
    0
    Мне больше нравится с LINQ:

    Code:
    var res = (from p in list1
                   from g in list2 
                   select p+";"+g).ToList();
    
     
    1 person likes this.
  6. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7

    А так?
     
  7. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Где вы такую траву берете?

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

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

    Code:
    ////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////
    #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.
     
  8. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    кто смелый и напишет на браинфаке?))))
     
  9. Tapaceuka

    Tapaceuka New Member

    Joined:
    13 Jan 2008
    Messages:
    111
    Likes Received:
    2
    Reputations:
    -6
    все понял как правельнее:

    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+';'+Memo2.Lines[j]);
    Closefile(f);