Perl in MFC



  • Hallo

    ich habe ein Problem

    ich habe ein vorhandenes Perl Script Welches Dateien analysiert und vergleiche anstellt und logs schreibt.

    dies funktioniert recht gut.

    Mein Problem jetzt aber

    Ich habe eine GUI mit MFC erstellt. In dieser werden die Dateien erstellt, welche mit Perl behandele. Jetzt waehlt der User ja den Pfad in der GUI aus.

    Jetzt weiss ja mein Perlscript ja den Pfad nicht. Wie "ubergebe" ich die Pfadangaben in Perl????

    Ich habe mir gedacht, das das MFC Programm die Pfadangaben in
    C:\Users
    reinschreibt und Perl immer von da aus die Angaben nimmt.

    Aber ist eine unschoene Aktion finde ich.

    Tausend Dank im voraus



  • Wenn du den Pfad zur PERL.exe in die path von Windows aufgenommen hast dann sollte der Pfad zu Perl gefunden werden.

    Im Programm rufts du perl.exe \\pathdeinerscripte\script.pl
    auf.



  • danke

    aber so kann ich nur einen pfad mitteilen gell?

    brauche aber mind. 3

    eine z.b.

    c:\Users\all_tests.txt
    c:\Users\current_tests.txt
    c:\Users\string_tests.txt

    wie mache ich das jetzt?



  • wem möchtest du was mitgeben?

    möchtest du dem pl script mehrere dateipfade mitgeben, oder wie soll man das denn verstehen?



  • also ich glaub ich habs geschafft

    $file = 'H:\\algorithmus\\Test1\\ Test_in_orginal\\';
    
       $string_list = 'string.txt';
       $string_list =	$file.$string_list;
    
       $actual_list = 'actual.log';
       $actual_list =	$file.$actual_list;
    
       $target_list =	'target.txt';
       $target_list =	$file.$target_list;
    
       $result = 'result_new.txt';
       $result = $file.$result_new.txt;
    
       $end_result	= 'end_result_new.txt';
       $end_result	= $file.end_result_new.txt;
    
    #	read all	( lines ) from	string_list	into an array names @string
    
    	open (INstring, "$string_list")		||	die "Can't read this	file.	\n";
    
    	sub read_array_string
    	{
    		@string = <INstring>;
    		foreach(@string)			
    		{		
    			$_	=~	s/	{2,}/	/gs;	
    
    			if($_	=~/Test/i)
    			{
    
    			}
    			else
    			{
    			   $_ =~ s/ //g; 
    			}
    
    		}close(INstring);
    
    		$max_entries_string = $#string +	1;	
    
    	}
    
    	&read_array_string;
    

    z.b. so hab ichs es gemeint. natuerlich ist es jetzt nur ein open

    ich hab ja den pfad in $file
    was ist aber wenn es nicht in dem selben ordner ist, sondern in verschiedenen?

    ich hab in meinen script 8 verschiedene OUTfiles. wie mach ich das dann auch

    ich geb ja z.b. fuer das zwischenergebnis einen pfad an ( in MFC ) fuer das endergebnis ein anderen pfad an.

    die beiden waehle ich in MFC aus ( die pfadangaben )

    ok bei mir sind die outfiles alle in dem selben ordner. was aber wenn nicht.

    und wenn die dateien ( die .txt ) in verschiedenen ordnern sind und nicht im gleichen dann kann ich ja nicht machen

    $file = 'H:\\algorithmus\\Test1\\ Test_in_orginal\\';
    

    sondern

    $file1 = 'H:\\huhu\\Test1\\ Test_in_orginal\\';
    $file2 = 'c:\\oh nein\\Test1\\ Test_in_orginal\\';
    $file3 = 'c:\\szstem33\\Test1\\ Test_in_orginal\\';
    

    ich kann doch nur laut dem bsp von TOM

    perl.exe \\pathdeinerscripte\script.pl 
    
    #kann ich etwa auch machen
    
    perl.exe \\ c:\ordner1\datei1.txt \\ c:\ordner1\datei1.txt \my_script.pl
    
    und hab jetzt zugriff drauf mit
    
    $file1 = $_[0] ;
    $file2 = $_[1] ;
    


  • hui

    weiss einer rat, oder ist es einfach nicht moeglich???

    merci im voraus


Anmelden zum Antworten