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

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

Δημοσ.

απο το μενου

project > add windows form > δωσε ενα όνομα (πχ DummyForm) ή άσε το default Form1.vb

 

Μετα απο το module σου μπορεις να καλεσεις την MsgBox απροβληματιστα γιατι μαζι με τη φορμα που προσθεσες πριν, γινανε και οι απαραιτητες ρυθμισεις

 

 

 

Αναλογα το πόσο απολαμβάνεις τη διαδικασία, απο 5 sec μεχρι 1 min

 

Πλακα κανεις !!!! Δηλαδη το προτζεκτ που έχω δωσει εδω το διαβασες???

και λες οτι θελει 1 λεπτο για να γινει????

 

Ποσο καιρο ασχολεισαι με την VB? και το λες αυτο

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

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

Δημοσ.

Πλακα κανεις !!!! Δηλαδη το προτζεκτ που έχω δωσει εδω το διαβασες???

και λες οτι θελει 1 λεπτο για να γινει????

 

Ποσο καιρο ασχολεισαι με την VB? και το λες αυτο

 

Star_Light, είμαστε 2 άτομα εδώ και προσπαθούμε να σε βοηθήσουμε και από πάνω βάζεις και χέρι!

 

ΕΙΝΑΙ ΑΠΛΟ! ΠΡΟΣΘΕΣΕ ΜΙΑ ΦΟΡΜΑ ΣΤΟ PROJECT!! ΠΟΣΟ ΠΙΟ ΑΠΛΑ ΝΑ ΣΤΟ ΠΟΥΜΕ ΔΗΛΑΔΗ????

 

MessageBox.Show δεν υπάρχει περίπτωση να χρησιμοποιήσεις σε CONSOLE APPLICATION αν δεν έχεις τις βιβλιοθήκες που σου λείπουν! Αν λοιπόν ΔΕΝ θες να ψάχνεις 3εις ώρες να βρείς ΠΟΙΕΣ είναι αυτές, ADD-> NEW -> FORM!

 

Αυτή η διαδικασία ΘΑ ΠΡΟΣΘΕΣΕΙ τις βιβλιοθήκες που σου λείπουν! Αν μετά δεν την θες τη φορμα, ΣΒΗΣΤΗ!

 

Αυτή η διαδικασία δεν είναι 1 λεπτό! Είναι το 25 δεύτερα συγκεκριμένα!

Δημοσ.

Θα σου δώσω ένα παράδειγμα....

 

Το παρακάτω, ανοίγει ένα pptx αρχείο, διαβάζει όλα τα text απο το 1ο slide, και τα εμφανίζει σε ένα message box

 

>
Module Module1
   Sub Main()
    ' Open the presentation
    Dim MyPresentation = New PowerPoint.Application().Presentations.Open("c:\tmp\test.pptx", , , True)
    ' get the first slide
    Dim MyFirstSlide = MyPresentation.Slides(1)
   
    Dim sb = String.Empty
    ' iterate through all shapes in slide and get text
    For i = 1 To MyFirstSlide.Shapes.Count
	    sb = sb & MyFirstSlide.Shapes.Item(i).TextFrame.TextRange.Text & Environment.NewLine
    Next (i)
    ' show message box with the texts
    MsgBox(sb.ToString)
    ' close presentation
    MyPresentation.Close()
   End Sub
End Module

 

Εσύ τώρα, αντι να τα εμφανίσεις σε message box, θα παρεις τα αποτελεσματα να τα βάλεις κάπου αλλού.

Για να δουλεψει το παραπάνω, πρεπει να προσθεσεις μια αναφορα ακόμα στο project σου. Project > Add Reference > Com Tab > Microsoft PowerPoint 14 Object Library > Ok

Δημοσ.

Παω να ψάξω και επανέρχομαι να την ποστάρω. Προφανως ο πιο πανω κώδικας

δεν δουλευει. O Υπολογιστης δεν λεει ποτε ψεμματα !!!!!!!

 

Ο "πιο πάνω κώδικας" δουλεύει.

Μόλις τον έριξα σε μια VB 2010 Express και αν εξαιρέσουμε ένα ")" που έλειπε, βάζοντας ένα "αποδεκτό" path στην sName, δούλεψε κανονικά.

 

O "πιο πάνω κώδικας" κάνει αυτό που ζήτησες.

Για την ακρίβεια κάνει αυτό που έγραψες ΚΑΙ ΟΧΙ αυτό που εννοούσες.

Του βάζεις ένα "path", που ΝΟΜΙΖΕΙΣ ότι είναι σωστό, και ο κώδικας σου απαντάει αν βρήκε και πού πρόβλημα στο "path" που έδωσες ή αν δεν βρήκε το αρχείο, στο τέλος του path.

Το πως θα διαχειριστείς αυτή την πληροφορία είναι δικό σου πρόβλημα, όχι δικό μου.

 

Ο "πιο πάνω κώδικας" ΔΕΝ ΚΑΝΕΙ ΑΚΡΙΒΩΣ ΑΥΤΟ ΠΟΥ ΘΕΛΕΙΣ, γιατί ΚΑΙ αυτό είναι δική σου δουλειά και όχι δική μου.

 

Κατά κατά τα άλλα, συνέχισε με το ίδιο στυλάκι, θα τα καταφέρεις στο άψε σβήσε.

  • Like 1
Δημοσ.

Θα σου δώσω ένα παράδειγμα....

 

Το παρακάτω, ανοίγει ένα pptx αρχείο, διαβάζει όλα τα text απο το 1ο slide, και τα εμφανίζει σε ένα message box

 

>
Module Module1
Sub Main()
 ' Open the presentation
 Dim MyPresentation = New PowerPoint.Application().Presentations.Open("c:\tmp\test.pptx", , , True)
 ' get the first slide
 Dim MyFirstSlide = MyPresentation.Slides(1)

 Dim sb = String.Empty
 ' iterate through all shapes in slide and get text
 For i = 1 To MyFirstSlide.Shapes.Count
	 sb = sb & MyFirstSlide.Shapes.Item(i).TextFrame.TextRange.Text & Environment.NewLine
 Next (i)
 ' show message box with the texts
 MsgBox(sb.ToString)
 ' close presentation
 MyPresentation.Close()
End Sub
End Module

 

Εσύ τώρα, αντι να τα εμφανίσεις σε message box, θα παρεις τα αποτελεσματα να τα βάλεις κάπου αλλού.

Για να δουλεψει το παραπάνω, πρεπει να προσθεσεις μια αναφορα ακόμα στο project σου. Project > Add Reference > Com Tab > Microsoft PowerPoint 14 Object Library > Ok

 

Bασικα εγω θέλω απο το 1ο slide πχ να παίρνει τα δεδομένα και να τα αντιγράφει σε ενα πεδίο στην βάση δεδομένων του Access. Πχ ανοιγει το ppt και έχει μέσα ένα ονομα στο 1ο slide και διπλα τις υποχρεωσεις του για αυτη τη βδομαδα .... στην βάση δεδομένων που έχω φτιαξει με το Access έχει αυτο το ονομα και στο πεδίο ΥΠΟΧΡΕΩΣΕΙΣ του πινακα θελω να τα αντιγραφει καθε φορα.... αυτο ειναι εφικτο ??? θελει πολυ κώδικα? Οι διαφανειες ειναι περιπου 165 κάθε φορα λογικα σε αυτο που μου δινεις θα πρεπει να βάλω ενα loop απο το i=1 ως το 166 .

 

Την εβαλα την φορμα που μου ειπατε .

Δημοσ.

Ο "πιο πάνω κώδικας" δουλεύει.

Μόλις τον έριξα σε μια VB 2010 Express και αν εξαιρέσουμε ένα ")" που έλειπε, βάζοντας ένα "αποδεκτό" path στην sName, δούλεψε κανονικά.

 

O "πιο πάνω κώδικας" κάνει αυτό που ζήτησες.

Για την ακρίβεια κάνει αυτό που έγραψες ΚΑΙ ΟΧΙ αυτό που εννοούσες.

Του βάζεις ένα "path", που ΝΟΜΙΖΕΙΣ ότι είναι σωστό, και ο κώδικας σου απαντάει αν βρήκε και πού πρόβλημα στο "path" που έδωσες ή αν δεν βρήκε το αρχείο, στο τέλος του path.

Το πως θα διαχειριστείς αυτή την πληροφορία είναι δικό σου πρόβλημα, όχι δικό μου.

 

Ο "πιο πάνω κώδικας" ΔΕΝ ΚΑΝΕΙ ΑΚΡΙΒΩΣ ΑΥΤΟ ΠΟΥ ΘΕΛΕΙΣ, γιατί ΚΑΙ αυτό είναι δική σου δουλειά και όχι δική μου.

 

Κατά κατά τα άλλα, συνέχισε με το ίδιο στυλάκι, θα τα καταφέρεις στο άψε σβήσε.

 

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

Και με αυτον τον κώδικα κάνω αυτο που θέλω πχ :

 

http://ideone.com/BxCAu

 

αλλα το θεμα ειναι οτι πάλι δεν μου εμφανιζει αρχεια word & ppt.

 

Δοκιμασα να τα βγαλω απο την επιφανεια εργασιας και να τα βαλω στον

 

C:\Program Files\PPfiles\file_name αλλα και παλι τιποτα μου λεει οτι δεν ειναι δυνατη η ευρεση του αρχειου απο το συστημα

απο την στιγμη που το αρχειο υπάρχει. Ολα τα εκτελεσιμα iexplore.exe , mirc.exe απο το ιδιο path μου τα ανοιγει κανονικα.

Αυτο ολο θελω να το κανω ωστε να εχω και κωδικα που ανοιγει το αρχειο ppt που θελω απο το οποιο θα γινονται καθε φορα οι ενημερωσεις και οι αντιγραφες προς την ΒΔ του Access.

Δημοσ.

Για να ξεκινησεις το αρχειο ppt, θα χρησιμοποιησεις τον κωδικα που σου έδωσα.

 

>
Dim MyPresentation = New PowerPoint.Application().Presentations.Open(ppt_filename, , , True)

 

Όπως σωστά κατάλαβες, θα χρησιμοποιησεις loop για να παρεις τα στοιχεια που θες απο ενα-ενα τα slides του αρχειου

 

Μετα τα κάνεις ότι θες, αφου έχεις access βαση και ξερεις τα tables και τα πεδια τους, βάζεις τα στοιχεια σου εκει.

 

Το ότι δεν σου ανοιγει με την Process.Start ισως οφειλεται στο οτι το ppt extension δεν ειναι associated με το powerpoint (just a wild guess). Αλλα και να σου ανοιγε, δε θα σου εδινε τη δυνατοτητα να επεξεργαστεις τα δεδομενα του αρχειου.

  • Like 1
Δημοσ.

ΟΚ . Βασικα έκανα ADD το Microsoft Powerpoint 12 Object Library γιατι 14 δεν ειχε... αλλα μου έβγαζε "Error 1 Type 'PowerPoint.Application' is not defined. "

 

Έβαλα Microsoft.Office.Interop.Powerpoint.Application δεν εβγαζε λαθος ο compiler αλλα δεν μου ανοιξε το αρχειο κ παλι... μηπως το προβλημα ειναι οτι ειμαι απο Console Application? Βασικα που αλλου να βαλω αυτο τον κωδικα που μου έδωσες? Το Form Application εχει δικη του κλάση. Εκει μεσα θα παω και θα το βάλω????

Δημοσ.

Έβαλα Microsoft.Office.Interop.Powerpoint.Application δεν εβγαζε λαθος ο compiler

καλα έκανες, παραλειψη μου. Εγω στο κώδικα πάνω-πανω είχα ενα

>
Imports Microsoft.Office.Interop

 

αλλα δεν μου ανοιξε το αρχειο κ παλι...

εχεις δοκιμασει στο ιδιο pc να ανοιξεις το αρχειο με double-click? ΛΕω, μηπως εχει θεμα το αρχειο

 

μηπως το προβλημα ειναι οτι ειμαι απο Console Application?

οχι, και αυτο που σου εστειλα ειναι console app, δεν εχει να κανει

 

Βασικα έκανα ADD το Microsoft Powerpoint 12 Object Library γιατι 14 δεν ειχε...

εχω την αισθηση (οχι σιγουρος) πως η 12 ειναι offιce 2007 ενω η 14 ειναι του 2010. Βασικα, καθε εκδοση του office εγκαθιστα την αναλογη βιβλιοθηκη κατα την εγκατασταση της. Ποια εκδοση του office εχεις; Με ποια εκδοση του office δημιουργηθηκε το αρχειο;

Εναλλακτικα, θες να ανεβασεις ενα δειγμα ppt αρχειου να δοκιμασουμε και εμεις να δουμε τι γίνετε;

Δημοσ.

Ναι έχω δοκιμασει , δεν εχει θεμα το αρχειο.

Τσακαλι εισαι .... η 14 ειναι του 10 ενω εχω το 07 και αρα ειναι το 12 :P

 

Έκανα Import και αυτο που μου λες.... κοιτα λαθη δεν βγαζει ο μεταγλωτιστης αλλα το αρχειο δεν θελει να ανοιξει με τιποτα!!!!!!

Το μηνυμα λάθους τωρα ειναι :

 

Presentations (unknow member) : Invalid request The Powerpoint Frame Windows does not exist....

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

αν και μολις διορθωσουμε αυτο το θεμα θελω το προγραμμα να παιρνει εισοδο ένα αρχειο και οχι να δουλευει με προκαθορισμενο

επειδη καθε φορα το αρχειο απο το οποιο θα παιρνεται η πληροφορια θα ειναι αλλο...

 

Έψαξα για αυτο το λαθος τωρα στο γκουγκλ αλλα έχουν άλλους κωδικες για VB διαφορετικους απο αυτον.

Δημοσ.

ok, δεν εχω office 2007 για δοκιμη. Όμως δοκίμασε το παρακάτω

αντικατεστησε το

>
Dim MyPresentation = New PowerPoint.Application().Presentations.Open(ppt_filename, , , True)

με αυτο

>
Dim myApp = New PowerPoint.Application()
myApp.Visible = msoTrue
Dim MyPresentation = myApp.Presentations.Open(ppt_filename, msoTrue, msoTrue, True)

 

αν και μολις διορθωσουμε αυτο το θεμα θελω το προγραμμα να παιρνει εισοδο ένα αρχειο και οχι να δουλευει με προκαθορισμενο

προφανως... παρε εισοδο απο το χρηστη το ονομα αρχειου που θες και περνα το σαν ορισμα στην Open που είναι παραπανω....

Δημοσ.

http://ideone.com/TP9FK

 

Tωρα μου βγάζει ενα σφάλμα οτι Expression is a value and therefore cannot be the target of an assignment.

 

Εβγαζε πολλα αλλα μετα οριστηκαν και οι συναρτησεις και οκ :P

 

Στο μεταξυ αν σε κανέναν beginner βγει το σφάλμα 'Sub main' was not found in 'Console Application1.Module1 πχ.

 

Πηγαινει στο Project μετα Console Application στο τελευταιο option αναλογα πως το εχει ονομασει κάποιος και μετα στο πεδιο Startup object βάζουμε Sub Main.

 

Προς το παρον ειναι η λιγοτερη δυνατη βοηθεια που μπορω να δωσω.... δυστυχως δεν κατεχω πολυ VB NET και αμα δεν ηξερα και λιγη C δεν θα μπορουσα να κανω απολυτως τιποτα. Γιατι μπορει να φαινεται οτι θελω κατι ετοιμο αλλα δεν ειναι ετσι. Για να προλαβω κάποιον κακοπροαιρετο (αν υπαρχει και διαβαζει) ;)

 

p.s Αν εχω καταλαβει καλα το MyPresentation ειναι αντικειμενο ετσι?

Δημοσ.

Το παρακάτω. Σκέτο.

>
Imports Microsoft.Office.Interop
[b]Imports Microsoft.Office.Core.MsoTriState[/b]
Module Module1
   Sub Main()
    ' Open the presentation			  
    Dim myApp = New PowerPoint.Application()
    Dim sName As String

    sName = InputBox$(" Δώσε το πλήρες path του αρχείου : ", "Παράθυρο Διαλόγου ")
    MsgBox("Άνοιγμα του : " & sName)

    myApp.Visible = [b]msoTrue[/b]
    [b]Dim [/b]MyPresentation = myApp.Presentations.Open(sName, msoTrue, msoTrue, True)

    ' get the first slide
    Dim MyFirstSlide = MyPresentation.Slides(1)
    Dim sb = String.Empty

    ' iterate through all shapes in slide and get text			  
    For i = 1 To MyFirstSlide.Shapes.Count
	    sb = sb & MyFirstSlide.Shapes.Item(i).TextFrame.TextRange.Text & Environment.NewLine
    Next (i)

    ' show message box with the texts			  
    MsgBox(sb.ToString)
    ' close presentation			  
    MyPresentation.Close()
   End Sub
End Module

 

 

 

p.s Αν εχω καταλαβει καλα το MyPresentation ειναι αντικειμενο ετσι?

ειναι. ΚΑι αρα ήθελε ενα dim μπροστα, αντιθετα εσυ το δηλωσες ως μεθοδο μετα και φυσικα ο compiler δακρυσε. Σου λεει ο κακομοιρης πως δε μπορεις να αναθεσεις τιμη σε μια τιμή (αυτη που επιστρεφει η μεθοδος)

 

 

Αν ειναι τιποτε αλλο, το βραδυ. Παω τη κορη μου στη θαλασσα......

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

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

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

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

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

Σύνδεση

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

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