Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči

[es] :: .NET :: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči

[ Pregleda: 2971 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 17:30 - pre 140 meseci
Nakon pitanja kako da promenim font u VS2010 editoru, nastavljam sa pitanjima za koja ne bih očekivao da ću ih postavljati. :D

Imam sledeći test program koji prikazuje značenja reči iz Wordovog rečnika sinonima. Testirao sam sa Microsoft Office 2010 i Microsoft Office 2013 Preview. Iako sve deluje u redu, za ovaj problem sam tražio pomoć i na StackOverflow, bez uspeha za sada.

Code (csharp):

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main(string[] args)
    {
        string word = "elite"; // = "common";

        var app = new Word.Application();
        var synInfo = app.SynonymInfo[word, Word.WdLanguageID.wdEnglishUS];

        if (synInfo.Found && synInfo.MeaningCount > 0)
        {
            foreach (var meaning in synInfo.MeaningList as Array)
                Console.WriteLine(meaning.ToString());
        }

        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(synInfo);
        app.Quit(Word.WdSaveOptions.wdDoNotSaveChanges);
        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(app);
    }
}
 


Program radi kako bi se i očekivalo, međutim samo za neke reči, poziv get_SynonymInfo() baca izuzetak.
Code:

Unhandled Exception: System.Runtime.InteropServices.COMException: Insufficient memory or disk space.
   at Microsoft.Office.Interop.Word.ApplicationClass.get_SynonymInfo(String Word, Object& LanguageID)
   at WordInteropTest.Program.Main(String[] args) in Program.cs:line 11


Reči za koje znam da bacaju izuzetak:
- elite (ali "elites" radi)
- near
- tuck
- tucks
- walking
- onboard
- horrified

Istovremeno skoro 150 000 drugih reči ne pravi nikakav problem. Ako koristim rečnik sinonima ručno u Wordu, dobijam ispravne rezultate.

Kako da izbegnem izuzetak u COM Interop kodu i dobijem rezultate u programu? Može li neko da testira kod sebe da li program gore radi?

[Ovu poruku je menjao Goran Rakić dana 07.09.2012. u 18:51 GMT+1]
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 20:22 - pre 140 meseci
VS 2010, .Net4.0, Word 2007 (znam, trebalo ti je 2010/12) - radi.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 20:58 - pre 140 meseci
Probaću čim instaliram Office 2007. Ostalo je i kod mene isto, .Net 4.0 i VS2010.

Evo snimka uhvaćenog izuzetka ako nekome to pruži više informacija da mi pomogne. Ovaj ErrorCode -2146822464 baš lepo izgleda.



Greška je ista bilo da kao referencu dodam Office 12 ili Office 14 PIA.

[Ovu poruku je menjao Goran Rakić dana 07.09.2012. u 22:11 GMT+1]
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Prikačeni fajlovi
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 22:20 - pre 140 meseci
Ovo stvarno radi uz Office 2007. Kako, zašto?


http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
Prikačeni fajlovi
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 22:32 - pre 140 meseci
Hah, otvaram stack a tvoje pitanje na vrhu :)
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči07.09.2012. u 22:56 - pre 140 meseci
Meni se čini da ovo ima veze sa homografima među značenjima.

Reč "elite" ima značenja "best (adj.)", "best (n.)" dok SynonymInfo interfejs može da predstavi samo jedno od ova dva. U Wordu 2007 ova dva značenja se prikazuju razdvojeno, dok ih Word 2010 i Word 2013 Preview prikazuju spojeno kao "best (adj./n.)".

Sve pomenute reči imaju homografe među značenjima. Ono što ne znam jeste da li među onih ~150 000 reči za koje dobijam rezultat postoji ovakav slučaj. Ukoliko postoji, onda nije to problem.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

[es] :: .NET :: C# i Word COM Interop: get_SynonymInfo() baca insufficient memory izuzetak samo za neke reči

[ Pregleda: 2971 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.