|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Jimbenit
Páginas: 1 ... 12 13 [14] 15
326
« en: Jueves 18 de Septiembre de 2008, 23:31 »
Seguimos con encuentra el errorEsta vez, dime la justificación del error, es mas... sin ejecutarolo puedes saber donde esta??
Aqui va (el siguiente codigo tiene un error):Function Suma(ParamArray Vector()) Dim X As Integer Dim Y As Integer For Each X In Vector Y = Y + X Next X Suma = Y End Function
327
« en: Jueves 18 de Septiembre de 2008, 23:21 »
Vaya palabras has citado F_Tanori.
328
« en: Jueves 18 de Septiembre de 2008, 23:16 »
Hey, Mario , como lo vas a mandar a buscar algo que no existe?... dice : Notapor cpmario
Busca en Planet Source Code (PSC) Encontré los siguientes enlaces. Espero te sirvan: QUE , QUE??, GAUSS JORDAN PARA 3*4???. pero que barrabazada estas diciendo??? Te recuerdo, en matematicas el metodo gauss Jordan se utiliza generalmente para resolver ecuaciones simultaneas donde el numero de incognitas es igual al numero de ecuaciones, por eso es solo para matrices cuadradas, es decir, n x n... Pero tambien se puede utiliazar para el pivotaje de matrices, es decir, para hacer matrices triangular superior e inferior, pero esto es solo para matrices de tamaña n x n (cuadradas), hey yo te aconsejo que estudies un poco mas de matematicasMira, Gauus Jordan no puede resolver matrices que no sean cuadradas, esto es por que para matrices de n x m (no cuadradas) la solución es simplemente INDETERMINADA, ahora, si estas estudiando alguna ingeniería y lo quieres aplicar a un principio de ESTATICA (Ciencias Fisicas), la respuesta que te doy es que el modelo es indeterminado y lo debes resolver por los principios de Elastica (o rigidez) de los elementos, o aplicando el metodo de la matriz de rigidez ( si no sabes de lo que hablo es por que no estudias ingenierias y entonces no le hagas caso a este comentario que aparece en color rojo). De todos modos, veo que tienes un error de conceptos.
329
« en: Miércoles 17 de Septiembre de 2008, 23:06 »
Edo:
Printer.PaintPicture http://www.vb-helper.com/howto_print_picture_large.html Edo, mira... el codigo de esa pagina (VBHelper) solo imprime el picture en caso de que sea una imagen cargada (es decir, un dibujo cargado en el picture como GIf, BMP, JPEG, etc..) pero ocasiona un error al imprimir un picture (que no tenga imagen como BMP, GIF, etc) y que solo tenga dibujos por metodos graficos.
330
« en: Miércoles 17 de Septiembre de 2008, 22:45 »
Y una ultima...Como dibujar en otro picture (por ejemplo Picture2) lo que esta en un picture Diferente (por ejemplo Picture1)... estoy usando metodos graficos (Lineas, puntos, circulos, rectangulos... etc.)?Gracias...
331
« en: Miércoles 17 de Septiembre de 2008, 20:50 »
Bueno, aun no doy con la solución pero se me ocurrió una idea, que me ayuda por el momento y es esta: Colocar mi picture en un formulario vacio, el picture debe ocupar todo el tamaño de ese formulario (este formulario no es visible para el usuario), y luego utilizar:Pero si alguien sabe como imprimir un picture sin usar lo que yo use, me seria de gran ayuda
332
« en: Miércoles 17 de Septiembre de 2008, 18:53 »
Hola a todos... Bueno... mi duda es la siguienete, estoy haciendo un grafico con el metodo LINE de VB6 en un Picture, pues la duda es: Como puedo mandar a imprimir el contenido de este PictureBox?Cualquier sugerencia sera bien recibida...
Saludos.
333
« en: Martes 16 de Septiembre de 2008, 17:42 »
Ya no quieren seguir jugando a las funciones de texto???
Nota: Esto les serviría mucho a los novatos (como yo)
334
« en: Martes 16 de Septiembre de 2008, 15:24 »
Esta bien, pueden eliminarlo. Pero antes dare la explicación, cuando estaba escribiendo y lo iba a enviar todo... me daba error (la pagina me daba error)... entonces pense que seria por lo extenso... asi que decidi enviarlo por pedazos... Hasta ahoriata habia pensado que era la pagina que no daba ( o no me dejaba) la oportunidad de escribir algo muy extenso... pero pensaba en los demas post y pensaba: ¿Como lo hacen?, pense que tenian permisos especiales... Bueno... Eliminenlo.. Saludos..
335
« en: Lunes 15 de Septiembre de 2008, 23:56 »
[INICIANDO NUEVA FUNCION]Ya que ninguno publica sus funciones de procesamientos de texto, el cual es el objetivo principal de este post, yo publicaré otra de mis funciones de procesamiento de textoEn cierta ocasión una vez tuve que diseñar un codigo que me permitiera guardar datos en un bloc de notas pero con un formato muy especial , este formato es el siguiente:El bloc de notas debia ser organizado por filas y columnas, y guardar los datos de acuerdo a esta posición.Ejemplo:
Call EscribirDatoMATRIZ(3, 10, "Cadena guardada en (F= 10, C=3)", "C:BlocMio.txt")
Lo anterior guarda "Cadena guardada en (F= 10, C=3)" en la posicion : fila 10 , columna 3 del orden que se invento en esta función[/color], las comas separan las COLUMNAS y las filas del bloc de notas separan las FILAS de este formatoSi quisiera guardar el numero 20, de acuerdo al orden aqui descrito en la posicion Fila = 4, Columna = 3: el codigo seria el siguiente:
Call EscribirDatoMATRIZ(3, 4, 20, "C:BlocMio.txt")
"C:BlocMio.txt" es la ruta donde este archivo se guarda. [/color] El proceso es el siguiente: Sub EscribirDatoMATRIZ(Colum As Long, Fila As Long, Dato As Variant, RutaArchivo As String) 'Guarda datos en un bloc notas en forma de comas... utiliza el bloc 'como una matriz ordenada por filas y columnas... [Mayo 5 / 2008] Dim Contador As Double Dim Vector() As Variant Dim Caracter As String Dim Max As Double Dim Linea As Long Dim Cadena As String Dim NumLet As Long Dim Letr As String Dim Cont As Long Dim PosComas() As Long Dim Pedazo1 As String Dim Pedazo2 As String Dim Comas_Add As Long If Dir(RutaArchivo) = "" Then 'Comprueba si existe archivo, en caso de no existir, lo crea. Open RutaArchivo For Output As #1 Print #1, " " Close #1 End If Linea = Fila For j = 1 To 2 'Introduce todas las lineas del Bloc notas en un Vector llamado Vector() Open RutaArchivo For Input As #1 While Not EOF(1) 'Cuenta las lineas del Bloc Notas Line Input #1, Caracter i = i + 1 If j = 1 Then Contador = i ElseIf j = 2 Then 'Si j = 2 , se escriben las lineas dentro del vector Vector(i) = Caracter End If Wend Close #1 If j = 1 Then If Linea > Contador Then 'Define el tamaño del vector ReDim Vector(1 To Linea) Max = Linea Else ReDim Vector(1 To Contador) Max = Contador End If i = 0 End If Next j For i = 1 To Max 'Obtiene la fila en string separada por comas If i = Fila Then Cadena = Vector(i) End If Next i 'Obtención de las posiciones de las comas '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ NumLet = Len(Cadena) For i = 1 To NumLet 'Cuenta las comas dentro de la cadena Letr = Mid(Cadena, i, 1) If Asc(Letr) = 44 Then Cont = Cont + 1 End If Next i If Colum > Cont + 1 Then 'Columna vacia Comas_Add = Colum - (Cont + 1) For i = 1 To Comas_Add Cadena = Cadena & ", " Next i Cont = Colum - 1 End If NumLet = Len(Cadena) ReDim PosComas(Cont) Cont = 0 For i = 1 To NumLet 'Coloca las posiciones de las comas dentro del vector Letr = Mid(Cadena, i, 1) If Asc(Letr) = 44 Then Cont = Cont + 1 PosComas(Cont) = i End If Next i '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 'Añadiendo el dato a la cadena [Elimina el dato anterior en esa posición] If Cont = 0 Then Cadena = Dato ElseIf Colum = 1 Then 'Coloca el dato al principio Cadena = Dato & Mid(Cadena, PosComas(1)) ElseIf Colum = UBound(PosComas()) + 1 Then 'Coloca el dato al final Cadena = Mid(Cadena, 1, PosComas(Colum - 1)) & Dato Else Pedazo1 = Mid(Cadena, 1, PosComas(Colum - 1)) Pedazo2 = Mid(Cadena, PosComas(Colum)) Cadena = Pedazo1 & Dato & Pedazo2 End If 'Escribiendo en el Bloc Notas Open RutaArchivo For Output As #1 For i = 1 To Max If i = Linea Then Vector(i) = Cadena Print #1, Vector(i) Else Print #1, Vector(i) End If Next i Close #1 End Sub
337
« en: Lunes 15 de Septiembre de 2008, 23:12 »
Al principio de este post dije: En cierta ocasion tuve que diseñar una funcion que me pasara una cadena de texto en sus equivalentes ASCII, pero con un formato especial, por ejemplo: "Hola mundo" El resultado debia ser:
10,72,111,108,97,32,109,117,110,100,111
Donde el primer numero indica el numero de caracteres de la cadena y los demas numeros son sus equivalentes ASCII Cierto??? Pues bien, el numero de caracteres leidos esta especificado por el primer numero que aparece en la cadena, por que si no es asi entonces ¿De que serviría estar en la cadena?Con lo anterior quiero decir que no importa cuantos numeros aparezcan en esta cadena, solo seran leidos la cantidad de caracteres que se especifiquen en el primer numero de la cadena. Pero... me impresiona mucho la capacidad de este codigo... en serio....
Muy bien.... muy bien hecho... de verdad..
338
« en: Lunes 15 de Septiembre de 2008, 22:49 »
Error TanoriMiremos el sigueinte codigo:For i = LBound(AsciiCode) + 1 To UBound(AsciiCode) 'El limite superior no es el primer numero de la cadena?, o acaso es el numero de comas??
339
« en: Lunes 15 de Septiembre de 2008, 22:44 »
Cuando digo: Nuevamente, F_Tanori... muy bien por la función inversa. No quiero decir que la de F_Tanori sea perfecta, de hecho no lo es... miremos el siguiente codigo... comparemos.
print ConvertString_FTanori("4,89,65,73,82,15,65"),,cadenanormal("4,89,65,73,82,15,65") YAIRA YAIR
A la izquierda la de Tanori; a la derecha, la mia ¿Que paso?, parece que la de Tanori no usa el primer numero (4) como parametro de cantidad de lectura de la función
Ahora si ven por que no es perfecta?
340
« en: Lunes 15 de Septiembre de 2008, 22:34 »
Moskito no se donde tiene la cabeza, su funcion tiene un error es el siguiente ejemplo:Parece que no acostumbra a verificar su funcion antes de postearlaMi función tiene un error cuando el numero de caracteres sobrepasa cierto limite, como anoto Nebire if len(cadenanormal)>16383 then msgbox "Existen posibilidades de que se produzca un error..." end if Nuevamente, F_Tanori... muy bien por la función inversa.
341
« en: Lunes 15 de Septiembre de 2008, 21:53 »
Ya se , ya se, ya se que he puesto muchos post referentes a este tema, solo espero que los moderadores me tengan algo de paciencia. [LA PRUEBA DE FUEGO]Recuerdan cuando uno estaba pequeño, aprendiendo la división?, cuando los profesores mandaban a uno a probar la división de dos cifras, el resultado (el cociente) se multiplicaba por el divisor y se le sumaba el residuo, este resultado debia ser el dividendo... recuerdan?
Pues bien, probemos las funciones de cadena para pasar a ascii y la funcion inversa
Print CadenaNormal(CadenaASCII("YAIR"))
[/color] El resultado es "YAIR", si no da este resultado las funciones ( o una de las dos)estan malas.... ok?...
saludos. Dificil???
Pues si... lo hacemos un poquito mas agradable.
342
« en: Lunes 15 de Septiembre de 2008, 21:41 »
MOSKITO DICE: El problema de la coma es fácilmente solucionable fuera de las funciones, así que no lo considero un error Bien, y que me dices del primer caracter generado por tu funcion...?print convertstring("4,89,65,73,82,") YAIR
343
« en: Lunes 15 de Septiembre de 2008, 21:32 »
MOSKITO DICE: Tienes un juicio discutible... En cuanto a tu función inversa es demasiado código para algo tan sencillo.
Bueno mira, la coma del final en tu funcion esta como requisito indispensable, acuerdate que es la funcion inversa de la primera, la cual no tiene coma al final (excepto cuando el valor resultado es un solo numero, como en el caso de : "") ¿Acaso se te hace dificil quitar esta coma del final dentro de esta misma función?, eso es por tu amor por a la recursividad, cierto ? y sobre lo de "demasiado codigo" (puede que sea cierto y tengas razón) Me quede esperando las funciones de ustedes, me gustaria revisarlas
344
« en: Lunes 15 de Septiembre de 2008, 20:31 »
Hola Nendrel
Primero te contare algo de mi:
Soy Ingeniero Civil, esto es constructor de edificios, puentes, carreteras, y todo lo que tenga que ver con el acero y concreto. Nunca he tenido una formación en algun centro academico o alguna institución sobre programación. Tuve la necesidad de aprender programación puesto que muchos de los software que utilizo no cuentan con las herramientas que yo quiero, hasta tal punto de llegar a realizar un software. Cuando mostraba a mis amigos ingenieros las aplicaciones que yo hacia, y la forma de mostrar y calcular las cosas, las cuales eran a criterio mio (ventaja sobre aplicaciones de otros) se impresionaron pero decian que tenia una apariecia complicada y por eso no les llamaba la atención. Una vez, en la empresa donde trabajo (yo estaba de ingeniero calculista), surgió un problema, de esos graves: Tan grave que si no lo resuelves no podrias avanzar. Los ingenieros calculistas llevaron sus soluciones, yo tan solo era nuevo y joven (en ese entonces tenia 23 años, hoy tengo 26) y con muy poca experincia laboral, todos muy viejos, especializados, a mi me miraban como "Por encima del hombro" como diciendo para si: "Y este muchachito que se cree?", yo estudiaba con mucho detenimiento el problema (era muy extenso) y me di cuenta que tenia solucion por medio de un algoritmo (aunque reconozco que era muy largo, y contenia mucha matematicas), pues bien... Me puse a trabajar por 10 dias seguidos en el problema (esto lo hacia en mi casa por que en la empresa no me permitian que yo "perdiera" mi tiempo pensando en eso... Al cabo de ese tiempo, lleve la aplicación (ya compilada), a la empresa y le dije a mis jefes que tenia la solución al problema que no se habia podido resolver, todos me miraron, algunos con cara de burla, otros murmuraban "Esta malo... cree que se resuelve asi de facil?... tal vez no ha comprendido el problema...", entonces mi jefe se sentó a mi lado en la oficina, frente al computador, explique detalladamente el error que se habia generado, esto era causado por un software y como nadie se da a la tarea de hacer la revision a mano por lo extenso que esto es (ademas nadie sospechaba de ese software debido a que el proceso se habia "revisado" con otro software que hacia tambien lo mismo), en la empresa en dias anteriores en horas del almuerzo yo habia revisado el preoceso de calculo de ese software con ayuda de mis pequeñas aplicaciones y me habia dado cuenta de esto. Pues bien, despues de explicar la causa del error, le mostré como era su solución con ayuda de la aplicación que habia desarrollado especialmente para la solución del problema planteado... mi jefe se quedó sorprendido y llamo una junta de inmediato, movió a mucha gente, hubo tal escandalo en la empresa sobre como se soluciona el problema, el rumor corrió de inmediato, ¡Fue como un descubrimiento!
345
« en: Lunes 15 de Septiembre de 2008, 17:55 »
Tutorial, este el primer capitulo, pero al lado de este , en esta pagina he publicado 20 capitulos del tutorial (es para principiantes, pero te lleva a lugares inospitos de la programación ) http://www.scribd.com/doc/467647/Capitulo-1-Visual-BasicSi necesitas mas, me avisas, te dare mas...
346
« en: Lunes 15 de Septiembre de 2008, 17:37 »
En cuanto a tu función inversa es demasiado código para algo tan sencillo.
La inversa de la mía (donde la cadena lleva una coma al final):
Mostrar/Ocultar Número de línea | Expandir/Contraer | Seleccionar todo
1. 2. Function ConvertString(ByRef str_Cadena As String) As String 3. 4. If str_Cadena = vbNullString Then 5. ConvertString = "" 6. Else 7. ConvertString = Chr(CInt(Left(str_Cadena, InStr(1, str_Cadena, ",") - 1))) & ConvertString(Right(str_Cadena, Len(str_Cadena) - InStr(1, str_Cadena, ","))) 8. End If 9. 10. End Function 11. Estas como que diciendo incoherencias... Mira esta funcion que pusiste "La inversa", esta mala... ¿Otraves enviando funciones sin probarlas?.... copia este codigo en la ventana inmediato y prueba esto (con tu funcion inversa)PRINT convertstring("4,89,65,73,82")
El resultado deberia ser "YAIR" pero esto da un error, ¿¿estas practicando programacion funcional?? (cambia de manual)Moskito, saludos amigo...
347
« en: Lunes 15 de Septiembre de 2008, 17:27 »
Sí, tiene una coma de más al final Tienes un juicio discutible... Bueno, mi funcion para pasar a ascii posee una coma demas al final cuando el resultado es un solo numeroPor ejemplo: 'En la ventana inmediato prueba esto: PRINT convertascii(""),,, cadenaascii("")
La funcio de la izq. es la de F_tenori, y la mia es la de la derecha.
¿Ves la diferencia de la coma?, pero para propositos practicos, esta buena... (hey, me agradas, VEO QUE ESTAS MUY CONECTADO!!!, )
348
« en: Lunes 15 de Septiembre de 2008, 16:48 »
Más limpio y más sencillo imposible Asi es Moskito, Saludos a todos
349
« en: Lunes 15 de Septiembre de 2008, 16:42 »
Mokito, saludos desde Colombia, me gustaria que revisaras el codigo antes de envialo. Estilo programación funcional: No la he probado, así que es sólo teórico F_Tanori, es excelente tu función.Function ConvertAscii(ByRef as_Cadena As String) As String On Error GoTo xError Dim i As Integer, AsciiCode() As Byte AsciiCode = as_Cadena For i = LBound(AsciiCode) To UBound(AsciiCode) Step 2 ConvertAscii = ConvertAscii & Format(AsciiCode(i), ",00") Next i ConvertAscii = (i / 2) & ConvertAscii xError: If Err.Number > 0 Then ConvertAscii = Err.Description Err.Clear End If End Function errorSobrepasa: msgbox "Cada carácter de entrada genera entre 2 y 4 caracteres de salida. en VB6 el tamaño máximo de una cadena son 65535 caracteres, dicho valor se ha alcanzado con el " & k " ésimo carácter de la cadena de entrada..." & vbcrlf & err.description CadenaASCII=cadenanormal Nebire, si asi es... tienes razón, pero para cadenas cortas esta buena, no??
350
« en: Lunes 15 de Septiembre de 2008, 16:14 »
La funcion inversa de esta... Function CadenaNormal(CadenaASCII As String) As String 'Convierte una cadena de formato ASCII en formato normal legible 'EJEMPLO: 'considere la cadena "4,89,65,73,82" 'esta función devuelve "YAIR" Dim NroCaracteres As Long 'Cuenta el numero de caracteres de la cadena ASCII Dim Letr As String Dim NumLet As Long Dim PosComas() As Long Dim NrsASCII() As String Dim Cont As Long Dim ComaDemas As Long 'Si existe una comas demas, esta variable almacena suposicion para su posterior reemplazo CadenaASCII = Trim(CadenaASCII) NroCaracteres = Len(CadenaASCII) For i = 1 To NroCaracteres 'Obtiene el numero de letras de la cadena normal Letr = Mid(CadenaASCII, i, 1) If Asc(Letr) = 44 Then NumLet = Val(Left(CadenaASCII, i - 1)) Exit For End If Next i ReDim PosComas(NumLet) Cont = 0 For i = 1 To NroCaracteres 'Obtiene la posicion de las comas y las introduce en el vetor POSCOMAS Letr = Mid(CadenaASCII, i, 1) If Asc(Letr) = 44 Then Cont = Cont + 1 If Cont > NumLet Then 'Si hay comas demas que no hacen parte de la palabra, sera eliminada ComaDemas = InStr(PosComas(Cont - 1) + 1, CadenaASCII, ",") CadenaASCII = Mid(CadenaASCII, 1, ComaDemas - 1) Exit For End If PosComas(Cont) = i End If Next i 'Si se introduce un cero, se devuelve vacio ("") If NumLet = 0 Then CadenaNormal = "" 'If NumLet = 0 Then Exit Sub ReDim NrsASCII(NumLet) If NumLet = 1 Then 'Introduce los numeros ASCII en el vector NrsASCII NrsASCII(NumLet) = Mid(CadenaASCII, PosComas(NumLet) + 1) Else For i = 1 To NumLet If i = NumLet Then NrsASCII(i) = Str(Val(Mid(CadenaASCII, PosComas(i) + 1))) Else NrsASCII(i) = Mid(CadenaASCII, PosComas(i) + 1, PosComas(i + 1) - PosComas(i) - 1) End If Next i End If For i = 1 To NumLet CadenaNormal = CadenaNormal & Chr(Val(NrsASCII(i))) Next i End Function
Páginas: 1 ... 12 13 [14] 15
|
|
|