• Viernes 29 de Marzo de 2024, 10:02

Autor Tema:  Corrección Ortográfica Desde C# .net  (Leído 4365 veces)

escolante20

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Corrección Ortográfica Desde C# .net
« en: Martes 5 de Junio de 2007, 17:47 »
0
Hola, es mi primer mensaje, por lo tanto  me presento un saludo.

Tengo una duda, ¿Cómo se podría hacer para que desde una pantalla determinada, donde hay que escribir un texto intruducido por el usuario, orrigiese la ortografía, como hace el word???, se podría utilizar alguna dll de las que utiliza Microsoft Office??.


Gracias.

escolante20

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Corrección Ortográfica Desde C# .net
« Respuesta #1 en: Miércoles 6 de Junio de 2007, 18:21 »
0
no se si me he explicado bien. El caso es que en un momento dado, el usuario debe rellenar un texto de detalle de una factura que suele constar de 4 o líneas, y me gustaría que hubiera una corrección automática como la del word cuando está escribiendo el texto.

Un saludo.

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Corrección Ortográfica Desde C# .net
« Respuesta #2 en: Miércoles 6 de Junio de 2007, 18:37 »
0
Deberás averiguar en que se basa word para poder realizar una corrección. O lo otro implementar tu propia tabla de palabras y dar las posibles coincidencias.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

escolante20

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Corrección Ortográfica Desde C# .net
« Respuesta #3 en: Miércoles 13 de Junio de 2007, 18:38 »
0
Bien, con este trozo de código he conseguido que funcione, pero no lo llego a entender muy bien, agradecería que alguien con más experiencia me ayudara a entenderlo mejor y buscar posibles mejoras para dar mayor rapidez y asegurar que no se queda nada en memoria, etc..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using Word = Microsoft.Office.Interop.Word;



namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Word.Application app = new Word.Application();

            //
            int errors = 0;

         
                if (textBox1.Text.Length > 0)
                {
                    app.Visible = false;

                    object template = Missing.Value;
                    object newTemplate = Missing.Value;
                    object documentType = Missing.Value;
                    object visible = true;

                    Word._Document doc1 = app.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
                    doc1.Words.First.InsertBefore(textBox1.Text);
                    Word.ProofreadingErrors spellErrorsColl = doc1.SpellingErrors;
                    errors = spellErrorsColl.Count;

                    object optional = Missing.Value;

                    doc1.CheckSpelling(
                        ref optional, ref optional, ref optional, ref optional, ref optional, ref optional,
                        ref optional, ref optional, ref optional, ref optional, ref optional, ref optional);

                    label1.Text = errors + " Errores corregidos ";
                    object first = 0;
                    object last = doc1.Characters.Count - 1;
                    textBox1.Text = doc1.Range(ref first, ref last).Text;
                }
               
                object saveChanges = false;
                object originalFormat = Missing.Value;
                object routeDocument = Missing.Value;

                app.Application.Quit(ref saveChanges, ref originalFormat, ref routeDocument);
        }
    }
}


Advertencia   1   Ambigüedad entre el método 'Microsoft.Office.Interop.Word._Application.Quit(ref object, ref object, ref object)'
y el no método 'Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit'.
Se utilizará el grupo de métodos.   C:\PRY_001\WindowsApplication1\WindowsApplication1\Form1.cs   60   33   WindowsApplication1

Además no entiendo muy bien como corregir el Warning que me da.

Desde ya, gracias.