Προς το περιεχόμενο

Ερωτήσεις για Visual Basic


Star_Light

Προτεινόμενες αναρτήσεις

Το έφτιαξα :P

 

http://ideone.com/JoUFh

 

αλλα ο δικος σου τροπος ειναι καλυτερος απλα θα βαλω το Dim διπλα απο εκει και τελος

αντι να βαζω καινουργια γραμμή οπως το εχω τωρα.

 

Τρεχει κανονικα αλλα μολις δινω το αρχειο μου βγαζει οτι

 

Η μέθοδος ή η λειτουργία δεν έχει υλοποιηθεί. :(

στην

msoTrueDim() μεσα υπάρχει το προβλημα στο

Throw New NotImplementedException

ΚΑΛΟ ΜΠΑΝΙΟ :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 98
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Starlight,

είσαι απρόσεχτος, είχα κάνει αλλαγες στον τελευταιο κωδικα που σου εβαλα

 

1) προσθεσα ενα Improrts στην αρχη

2) αφαίρεσα τις 4 μεθοδους στο τελος που εβαλες εσυ. ΒΓΑΛΕ τις, ΠΕΤΑΞΕ τις

3) ειναι myApp.Visible = msoTrue και οχι myApp.Visible = msoTrueDim()

 

Ξαναπροσπαθησε προσεκτικα.....

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ισως τα έκανες μετα edit και δεν τα προσεξα.....

 

Λοιπον εκανα ολα οσα μου ειπες... ανοιγει το πλαισιακι του Powerpoint αλλα οχι το συγκεκριμενο αρχειο......

 

Μου βγαζει COMException was unhandled. Powerpoint could not open the file..... :/

 

Μηπως θα πρεπει να παιξω με κανα τετοιο -> Sub OpenPresentationReadOnly()

Presentations.Open "c:\test.ppt", msoTrue

End Sub

?

 

Έβαλα και τους ελεγχους που μου συστησε πιο πανω το Ατομο....

 

Ως τωρα ο κώδικας έχει ως εξης κ για τους υπολοιπους που παρακολουθουν :

 

http://ideone.com/bJsQb

 

Απλα αμα δωσω εισοδο της μορφης : C:\Users\.....

 

δεν τυπώνει λάθος... παρα μου βγάζει τον κωδικα... ενω αμα δωσω τελιτσες εκει που περιμενει path αρχειου δειχνει κανονικα μηνυμα λαθους οτι δεν βρεθηκε η διαδρομη......

 

Ο χρηστης μπορει ομως να πατησει καταλαθος και τελιτσες μεσα στο path και οχι μονο στην αρχη του....

Επεξ/σία από Star_Light
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δε ξέρω αν φταίει το path, στη θεση σου θα δοκιμαζα αρχικα σε ενα ευκολο, πχ C:\tmp\myppt.ppt

 

Επισης, αντι για InputBox θα χρησιμοποιουσα ενα OpenFileDialog (google for it)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Mας τρολαρει μου φαινεται..... εφοσον το αρχειο υπάρχει και ειναι στην επιφάνεια εργασιας

δεν καταλαβαινω για ποιο λογο δεν το ανοιγει. Τωρα μου εμφανιζει οτι το αρχειο δεν βρεθηκε στην ταδε διαδρομη.

 

Τemp φακελο βρισκω που θελει να χεις root access tmp δεν βρισκω.

Ειχα φτιαξει και ενα path C:\Windows\PPfiles\filename

 

αλλα και παλι τιποτα.

 

EDIT Τα κατάφερα ... επειδη μου κοψε και έβαλα κατάληξη .pptx το ανοιγει κανονικα τωρα... αλλα μου πεταει και ενα σφαλματάκι εδω ->

 

http://ideone.com/27kdY

 

Οτι η τιμη που οριστηκε ειναι εκτος ορίων... ξερουμε γιατι αυτο???? Θα το ψαχνω και εγω παραλληλα... :)

 

Υπαρχει κάποιο θέμα και μου συστήνεις να καταργήσω την InputBox ?

Επεξ/σία από Star_Light
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τemp φακελο βρισκω που θελει να χεις root access tmp δεν βρισκω.

Ειχα φτιαξει και ενα path C:\Windows\PPfiles\filename

ελα τωρα ρε μαν, προφανως εννουσα να ΦΤΙΑΞΕΙΣ ενα φακελο tmp με το αρχειο σου μεσα με το υποθετικο όνομα myppt.ppt

Ηταν ενα ευκολο path χωρις κενα και τετοια να δουμε αν υπηρχε προβλημα στην εισοδο μεσω του InputBox

Για τον ίδιο λογο, ειπα μπας και χρησιμοποιουσες το OpenFileDialog οπου μπορεις να επιλεξεις το αρχειο σου.... δεν ειναι απαραιτητο ομως

Το ερρορ που σου βγαζει μαλλον σημαινει πως δεν υπαρχουν shapes μεσα στο 1ο slide. Απο τη στιγμη που δεν εχουμε καποιο sample απο τα αρχεια που χρησιμοποιεις, δε μπορω να απαντησω. Προφανως αυτο ειναι ενα δειγμα λειτουργικοτητας που μπορεις να εχεις με αρχεια powerpoint. Εσυ θα δεις τι εχεις μεσα και θα το χρησιμοποιησεις αναλογα.Αν θες, ανεβασε ενα αρχειο να κανουμε καμια δοκιμη

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κοιτα ο \tmp ειναι φάκελος συστήματος στο Linux . Υπεθεσα οτι μπορει να υπάρχει και στα Windows

γιατι δεν έχω ψαξει πολυ το συστημα αρχειων των Win. Πιο πολυ Linux χρησιμοποιω.... Τωρα αυτο που μου λες

το έχω φτιάξει εδω και καμποσες μέρες και κανω δοκιμες αν τυχον υπήρχαν θέματα με τα κενα μεσα στο path ;)

 

Τωρα το αρχείο PPT με το οποιο θα παιζει το προγραμμα... θα ειναι text. Δεν θα εχει καπου σχηματα.

Θα έχει 3 στήλες φαντάσου στην μια θα ειναι ενα όνομα στην 2η οι σχετιζομενες πληροφοριες για αυτο το ονομα (τα αντιστοιχα

θα βρισκονται και στην ΒΔ σαν πεδια του Access) και η 3η απλα δεν μας ενδιαφερει :P

 

Σε βοηθαω καθολου ?

 

Αυτα τωρα καθε φορα θελουμε να τα αντιγραφουμε απο το ενα... στο αλλο.

Αυτο ειναι και το τελικο σταδιο !

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βασικά μια ερώτηση καθαρά πληροφοριακή.

 

Πως προέκυψε το αρχείο από το οποίο παίρνεις δεδομένα να είναι ppt (PowerPoint);

 

Έχω κάποιο κώδικα .net (C#) για εγγραφή excel να σου παραθέσω αλλά το μόνο που μπορείς να πάρεις από αυτό είναι η γενικότερη λογική.

 

[ Πρώτα φτιάχνεις ένα αντικείμενο Excel Application μετά του κάνεις add ένα workbook πάνω στο οποίο θα εργαστείς μετά "πιάνεις" το sheet που θες κ.α. ...]

 

Απο κει και πέρα το excel είναι λίγο πιο εύκολο γιατί του "δείχνεις" ένα κελί να γράφεις σε αυτό.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όντως και μένα με ξενίζει η επιλογή του powerpoint αντί για excel. Anyway...

Οχι, η περιγραφή σου δε με βοηθά γιατι πρέπει να μυρίσω νυχια. Στείλε sample (με ψεύτικα δεδομένα, φυσικά δε πρεπει να βγάλεις στον αέρα δεδομένα της δουλειάς)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βασικά μια ερώτηση καθαρά πληροφοριακή.

 

Πως προέκυψε το αρχείο από το οποίο παίρνεις δεδομένα να είναι ppt (PowerPoint);

 

Έχω κάποιο κώδικα .net (C#) για εγγραφή excel να σου παραθέσω αλλά το μόνο που μπορείς να πάρεις από αυτό είναι η γενικότερη λογική.

 

[ Πρώτα φτιάχνεις ένα αντικείμενο Excel Application μετά του κάνεις add ένα workbook πάνω στο οποίο θα εργαστείς μετά "πιάνεις" το sheet που θες κ.α. ...]

 

Απο κει και πέρα το excel είναι λίγο πιο εύκολο γιατί του "δείχνεις" ένα κελί να γράφεις σε αυτό.

 

Εννοεις να ειναι Excel το αρχειο προορισμού? ή το αρχειο προέλευσης γιατι ειναι Powerpoint.....

ε ξερω γω???? ετσι το κανανε. Γενικα δεν ειναι σωστο το ολο συστημα μιας και θα μπορουσαμε

να ειχαμε ξεμπερδεψει με linked objects αν το αρχειο ενημερωνοταν καθημερινα μεσω δικτυου.

Και να μην χρειαζοτανε καθολου κωδικας... δεν εχω πιασει ποτε ξανα VB εγω.

 

Υ.Γ Δεν πληρωνομαι δεν ειναι δουλεια ας πουμε.... ουτε εργασια γκομενας :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Λοιπον το αρχείο PP (Μια περιπου ομοια εκδοση του) Απο τα πεδια ονοματα διπλα στις τελλιτσες θα βρισκονται οι πληροφοριες τις οποιες θα πρεπει να αντιγράφει το προγραμμα στην ΒΔ του Access ... σε ένα πεδιο της που το έχω ονομάσει "ΕΚΚΡΕΜΟΤΗΤΕΣ" ας πουμε.

 

http://www.filedropper.com/trials

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

ok, προσεξε τωρα

 

Κάθε αρχειο ppt (ή pptx, το ιδιο ειναι) έχει slides, στο κωδικα που σου έστειλα ασχοληθηκα μονο με το πρώτο (και επαγωγικα θα ασχοληθεις εσυ με τα υπολοιπα)

Καθε slide έχει shapes

Καθε shape έχει διαφορα πραγματα. Στο κωδικα μου που βαζω και παρακατω, υπεθετα πως έχει ενα textframe (δηλαδη ενα κουτακι με κειμενο). To υπεθεσα γιατι αυτο ειναι το default αρχειο οταν δημιουργεις καινοργιο ppt. Αρα ελεγα, για καθε κουτακι με κειμενο, ενωσε τα ωστε να τα δειξεις ολα μαζι σε ενα Message Box

>
For i = 1 To MyFirstSlide.Shapes.Count
	    sb = sb & MyFirstSlide.Shapes.Item(i).TextFrame.TextRange.Text & Environment.NewLine
    Next (i)

 

Το δικο σου αρχειο δεν ηταν ετσι, γιαυτο εψαχνε να βρει κειμενο που δεν υπηρχε και εσκαγε, αντιθετα, στο 1ο slide, έχει 1 shape με 1 table. Αρα, αυτο που θες ειναι, για καθε γραμμη αυτου του table να παρεις τιμες απο τα 2 columns. Παραθέτω παραδειγμα

>
For Each row As Row In MyFirstSlide.Shapes.Item(1).Table.Rows
	    Dim firstColVal = row.Cells(1).Shape.TextFrame.TextRange.Text.Trim()
	    Dim secondColVal = row.Cells(2).Shape.TextFrame.TextRange.Text.Trim()
	    sb = sb & firstColVal & "=" & secondColVal & Environment.NewLine
    Next

 

Συμπερασμα, πρεπει να ξερεις τη μορφολογια του αρχειου με το οποιο θελεις να δουλεψεις, και πρεπει να εξασφαλισεις οσο γινεται πως οι τυποι δε θα αλλαξουν τη μορφη στη πορεια (ή αν την αλλαξουν, πρεπει να το ξερεις και να αλλαξεις τον κωδικα σου αναλογα).

 

Για να ακριβολογω, για να δεις αποτελεσμα, αντικαθιστας το προ-παραπανω "For" (που σου σκαει) με το παραπανω "For Each".

 

Επαγωγικα, περιμενω πως πλεον μπορεις να παρεις μια-μια τις τιμες απο τον πινακα και να τις κανεις οτι θες.

 

Καλη συνέχεια

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...