| 
Autor
 | 
Thema:  Exceldatei einlesen (1164 mal gelesen)
 | 
 
                        pom Mitglied Dipl.-Ing. (FH)
   
  
        Beiträge: 182 Registriert: 25.08.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 20. Sep. 2006 12:43       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Hi, Ich habe das Problem das wenn meine Simulation auf einer anderen Partition liegt oder in einem anderen Ordner sich befindet, die Exceldatein nicht mehr geöfnet werden kann. Kleiner Auszug aus dem Quellcode: Mtm.leseExcelDatei("\\Diplomarbeit Simualtion\Eingangsdaten\AP2.xls", "Tabelle2"); ST4.bearbeitungszeit := str_to_time(MTM[3,42]); Welchen Befehl gibt es damit die Simulation sich an dem Ordner "Diplomarbeit Simualtion" orientiert. In der Hilfe sind nur Beispiele mit festen Pfaden. Da sich die Datei Namen und auch die Ordnerstruktur nicht ändert, hilft mir der im Forum besprochene Thread nicht weiter. ( http://ww3.cad.de/foren/ubb/Forum262/HTML/000108.shtml#000002  ) Hatte bereits versucht ~./ oder //*.*/ aber das geht so wohl nicht. Auch auf gute alte Befehle ala "cd.. /Eingangsdaten/Ap2.xls" fällt er nich rein     Hoffe ihr könnt mir helfen. Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                           Ex-Mitglied
  
                           | 
                          
                           
                           
                          erstellt am: 20. Sep. 2006 13:14       <-- editieren / zitieren -->       
                          
  versuchs mal so  (am Beispiel "c:\tmp" &  yyy.xls) setzeAktuellesVerzeichnis("c:\tmp");   xtab.leseExcelDatei("yyy.xls", "Tabelle1"); oder  xtab.leseExcelDatei("c:\tmp\yyy.xls", "Tabelle1"); Pruefe auch mal den eingegebenen Pfad.  Das "a" und "l" sind in "Simulation" vertauscht.  Gruss
 ------------------ Der Simulator  | 
                          
                        pom Mitglied Dipl.-Ing. (FH)
   
  
        Beiträge: 182 Registriert: 25.08.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 20. Sep. 2006 13:22       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Aber damit mach ich mich ja wieder von der Festplatte abhängig (als beispiel  c:\Temp). Die Datein werden bei mir auch eingelesen das funktioniert, nur auf anderen Rechnern bzw. Festplatten nicht. Wichtig ist das der Standort des Ordners flexibel sein muss. Es darf sich also nur auf den Hauptordner beziehen. Muss ich wirklich immer den kompleten Pfad angeben? MFG Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                           Ex-Mitglied
  
                           | 
                          
                           
                           
                          erstellt am: 20. Sep. 2006 13:35       <-- editieren / zitieren -->       
                          
  gleiches in grün... versuchs mal so  (am Beispiel "\\\servername\pfad" &  yyy.xls) setzeAktuellesVerzeichnis("\\\servername\pfad");   xtab.leseExcelDatei("yyy.xls", "Tabelle1"); oder  xtab.leseExcelDatei("\\\servername\pfad\yyy.xls", "Tabelle1"); Gruss ------------------ Der Simulator  | 
                          
                        pom Mitglied Dipl.-Ing. (FH)
   
  
        Beiträge: 182 Registriert: 25.08.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 20. Sep. 2006 14:23       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Ok glaub wir haben an einander vorbei geredet oder ich hab es nicht ganz verstanden    . Aber wie das nun mal so ist wenn man versucht jemand etwas zu erklären denkt man nochmal genau nach und tada mir ist ein Modell eingefallen das du mir mal erstellt hast bei meinem ersten post hier im Forum! Dann hab ich los gelegt, nochmal danke für die Hilfe damals     Auszug 	x:=strlen("Modell\7177version26 MTM fertig.spp"); 	y:=strlen(modelfile); 	y:=y-x+1; 	verzeichnis:= modelfile; 	verzeichnis:= omit(verzeichnis,y,x); 	setzeAktuellesVerzeichnis(verzeichnis); 	print verzeichnis;  	Mtm.leseExcelDatei("Eingangsdaten\AP2.xls", "Tabelle2"); 	ST4.bearbeitungszeit := str_to_time(MTM[3,42]);
  Das Model sucht sich nun selber den Pfad, es ist also absolut egal wo die Datei geöffnet wird so lange sie in der Ordnerstruktur ist. Getestet und funtzt    
 Mich stört nur noch die erste Zeile da die nicht wirklich flexibel ist.  x:=strlen("Modell\7177version26 MTM fertig.spp"); gibt es einen Befehl nur den Namen des Models auszulesen? dann wär alles super! MFG Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                           Ex-Mitglied
  
                           | 
                          
                           
                           
                          erstellt am: 20. Sep. 2006 18:49       <-- editieren / zitieren -->       
                          
  ja, es geht noch etwas flexibler und vor allem kompakter! Mit dem (DOS-) Wissen, dass ".." das uebergeordnete (Datei-)Verzeichnis bezeichnet, reduziert  sich Dein 9-Zeiler auf 2 Zeilen. . . . Mtm.leseExcelData(modelfile+"\\..\\..\\Eingangsdaten\\AP2.xls","Tabelle2"); st4.bearbeitungszeit:= ...  Gruss
 ------------------ Der Simulator  | 
                         
   
 | | Engineer for Design and Dimensioning of Flat-Product Equipment (f/m/d) |  SMS group GmbH   SMS group steht weltweit für zukunftsorientierte Technologie und herausragenden Service im Maschinen- und Anlagenbau für die Metallindustrie. Unser Team aus mehr als 13.500 Mitarbeiterinnen und Mitarbeitern weltweit hat 2024 einen Umsatz von über 4 Mrd. EUR erwirtschaftet. Wir nutzen unsere 150 Jahre Erfahrung und unser digitales Know-how für kontinuierliche Innovationen auch über das Kerngeschäft hinaus....  |  | Anzeige ansehen | Feste Anstellung |  
  | 
 
                        pom Mitglied Dipl.-Ing. (FH)
   
  
        Beiträge: 182 Registriert: 25.08.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 21. Sep. 2006 09:08       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Moin, das echt der Hammer! Ich hab 3 Stunden gebraucht damit das Funtzt und schreibst mir da nen Einzeiler hin      Das ist echt super! Kann ich noch was in meine Arbeit schreiben: "Wie macht man es am besten nicht (siehe 9 Zeiler)"       Also nochmal mal vielen Dank! für die Hilfe. MFG  Patrick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  |