Gracias Gracias:  2
Resultados 1 al 12 de 12

Tema: Problema al escribir string en archivo

  1. #1
    Senior Member
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Problema al escribir string en archivo

    Hola estoy tratando de crear un script, que lo primero que hace es ecribir una cadena de texto en un archivo, esta cadena de texto debería terminar un salto de línea pero no se como hacer esto con maxscript, lo que hace es terminarme las cadenas siempre con un 0, se me ocurrió mover el seeque del archivo a la posición antes del 0 y escribir un short que representa el salto de línea, pero ahora si abro el archivo con un editor hexadecimal en vez de terminar con OD OA
    que es el salto de línea en hexa termina con OD OD OA.

    Alguien me puede orientar:

    aquí el código:

    filename=getsavefilename caption:"Save as" type:"cff file|*.cff" filename:"*.cff"
    thefile= fopen filename "wt"
    writestring thefile "//Ciber Face Converter File (c)2009 by Jor1980"
    fseeque thefile -1 #seek_current
    writeshort thefile 2573 #signed
    fclose thefile

  2. #2
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Respuesta: Problema al escribir string en archivo

    eso suena a archivo binario, pero usa strings/stringstreams
    Código:
    ru = createfile (getsavefilename caption:"Save as" types:"cff File(*.cff)|*.cff")
    format "//Ciber Face Converter File (c)2009 by Jor1980\n\n" to:ru
    close ru
    \n para newline, como en Notepad
    \r para carriage return, como en wordpad

    revisa los temas de string, stringstream, filestream en mxs help

  3. #3
    Senior Member
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Respuesta: Problema al escribir string en archivo

    Muchas gracias,con es me funciona.

    Ahora necesitaría acceder desde el script a una escena y poder extraer su nombre y todas las mallas que contiene.

    Me puedes orientar un poco?

    Estoy usando lo siguiente para acceder a los objetos:

    objetos=objects
    for object in objetos do
    (format object.name to:thefile)

    El problema es que esto me escribe el nombre de todos, y yo sólo quiero que me escriba el nombre del primero, probé esto:

    format objetos[1].name to:thefile

    pero no es valido
    Última edición por jor1980; 25-01-2010 a las 16:57

  4. #4
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Respuesta: Problema al escribir string en archivo

    tienes que revisar bien los topics de maxscript en el archivo de ayuda,
    de la manera en que estas aprendiendo solo te vas a complicar..

    revisa los topics de arrays, objectsets, for loops, filestream y con pequeñas pruebas ve como funcionan

    date cuenta que cuando creas un archivo, max lo abre, es decir le pide acceso a Windows, pero luego uno siempre debe cerrarlo cuando ya no se necesite hacer nada con ese archivo:
    close <filestring>
    una vez cerrado ya no puedes escribir nada en él, hasta que lo vuelvas a abrir con openfile

    también revisa lo que encuentres hacerca de variables :
    Local and Global Variables
    Variable Assignment

  5. #5
    Senior Member
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Respuesta: Problema al escribir string en archivo

    Al final logré completar el script, sólo que ahora el problema que tengo es cuando algún vértice de la malla tiene valores muy grande ya que en mi archivo de texto aparecen de la siguiente forma:

    -6.67578e+008

    necesito solventar esto y el script estará terminado, alguna idea de como hacerlo?

    os dejo el script para que podáis revisarlo
    Archivos adjuntados Archivos adjuntados

  6. #6
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Respuesta: Problema al escribir string en archivo

    tienes double, integer64 para que sean más precisas tus operaciones,

    en el caso de floats extraes los enteros del número y los añades a un string y luego los decimales, estos decimales los vas convirtiendo a enteros de uno en uno moviendo el pundo decimal al multiplicarlos * 10 y los vas añadiendo al mismo string
    7.523 extraes entero >> 7

    .523 * 10 = 5.23 > extraes entero > 5
    append "7." "5" > "7.5"
    repites de nuevo:
    5.23 >> .23 > 2.3 > 2 >> append "7.5" "2" >> "7.52"

    dependiendo de cuan largo sea el loop llega un momento donde solo obtienes ceros

    y también tienes formattedprint

  7. #7
    Senior Member
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Respuesta: Problema al escribir string en archivo

    Gracias, tengo que revisarlo bien porque no entiendo como extraes el entero y tengo el problema de que e no aparece siempre elevado al mismo número, te subo aquí el archivo que exporto con el script que subí antes para que lo veas por ti mismo junto con el archivo que resulta al exportar,puedes ver lo que te digo abriendo el archivo exportado con editor hexadecimal.

    Muchísimas gracias por todas las molestias
    Archivos adjuntados Archivos adjuntados
    Última edición por jor1980; 26-01-2010 a las 15:20

  8. #8
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Respuesta: Problema al escribir string en archivo

    son números demasiado grandes, pero bueno, te pongo un ejemplo:
    Código:
    (
    	fn parseNumbers vec =
    	(
    		local str=""
    		local vec=#(vec.x as double,vec.y as double,vec.z as double)
    		for s in 1 to 3 do
    		(
    			append str (formattedprint vec[s] format:".18g")
    			append str " "
    		)
    		str
    	)
    	
    	local sstr = stringstream "3DPODER MXS \r"
    	local faces
    	skipToNextLine sstr
    	for o in objects do
    	(
    		for v in 1 to getNumVerts o do
    			format ((parseNumbers (getVert $ v)) +"\n") to:sstr
    		for i=1 to getNumFaces o do(
    			faces=getface o i
    			format "% % %\n" faces.x faces.y faces.z to:sstr
    		)
    	)
    	sstr
    )

  9. #9
    Senior Member
    Fecha de ingreso
    Feb 2008
    Mensajes
    109

    Respuesta: Problema al escribir string en archivo

    Muchísimas gracias por todas las molestias, al final he usado formattedprint y creó que me funciona, por lo que a salvo de encontrar algún error inesperado el script esta terminado.

    Me has ahorrado muchísimo tiempo tratando de buscar solución a mis problemas,
    valoro mucho tu ayuda.un saludo

  10. #10
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Respuesta: Problema al escribir string en archivo

    no es molestia, al contrario, se que me va a servir el pensar en estas cosas..

  11. #11
    Senior Member
    Fecha de ingreso
    Oct 2010
    Ubicación
    México D.F.
    Mensajes
    582

    Re: Respuesta: Problema al escribir string en archivo

    Hola me podrían explicar que es un string, tengo un ejemplo que contiene varios string etc....
    y espero su ayuda y luego les mando el ejemplo okay... Gracias ...

  12. #12
    Bushido Avatar de jmpinero
    Fecha de ingreso
    Dec 2008
    Ubicación
    Sevilla
    Mensajes
    293

    Re: Problema al escribir string en archivo

    Soy prácticamente nuevo en el mundo de la programacion, además de autodidacta.. si me equivoco, que alguien me corrija :D

    Un string es una cadena te texto, ejemplo:
    a = "Hola"


    "Hola" es string y "a" es una variable. Así que podríamos decir que una cadena de texto no es más que un texto
    Los String se forman poniendo un texto entre comillas.
    :D
    Última edición por jmpinero; 07-07-2011 a las 15:27
    /* Jmpinero3D Blog´s */ | "Hasta el mas sabio se puede sentar encima de un hormiguero, pero solo el necio se queda sentado"

Temas similares

  1. 3ds Max Problema al guardar archivo en red
    Por kino_unico en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    Último mensaje: 30-03-2015, 13:04
  2. String contiene X palabra maxscript
    Por Thrawn en el foro Programación y Scripts
    Respuestas: 2
    Último mensaje: 24-11-2011, 14:04
  3. Problema al escribir un string
    Por jmpinero en el foro Programación y Scripts
    Respuestas: 5
    Último mensaje: 03-07-2011, 23:16
  4. Problema al escribir algunas respuestas
    Por alpha_vil en el foro Ayuda con el uso del foro
    Respuestas: 4
    Último mensaje: 01-08-2005, 19:15
  5. problema con archivo en 3ds max
    Por xoubino en el foro Problemas con Programas
    Respuestas: 2
    Último mensaje: 29-07-2004, 15:31

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •