Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/08/2013, 09:15
vistaero
 
Fecha de Ingreso: noviembre-2009
Mensajes: 67
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Editar un archivo de texto plano a través de un formulario

Hola, gracias por responder.

Me temo que no, dentro del propio Minecraft sólo puedes crear servidores locales que no puedes configurar en absoluto, y luego los servidores de verdad, que son archivos .jar que se ejecutan con un lanzador .bat, desde luego no son tan fáciles y cómodos de configurar, gestionar, actualizar, etc, como pretendo que este programa haga.

En cuanto a la idea, voy a investigar sobre ese tal split que mencionas, y actualizo el mensaje en cuanto consiga algo.

Saludos!

Edito: He creado una aplicación de consola para hacer las pruebas, y he usado este código:

Código vb:
Ver original
  1. Imports System
  2. Imports System.IO
  3.  
  4. Module Module1
  5.     Private s As String
  6.     Sub Main()
  7.         Dim path As String = "server.properties"
  8.         Dim sw As StreamWriter
  9.         Dim readText() As String = File.ReadAllLines(path)
  10.         For Each s In readText
  11.             Dim split As String() = s.Split(New [Char]() {"="c, CChar(vbTab)})
  12.  
  13.             For Each s As String In split
  14.                 If s.Trim() <> "" Then
  15.                     Console.WriteLine(s)
  16.                 End If
  17.             Next s
  18.         Next
  19.         Console.ReadLine()
  20.     End Sub
  21. End Module

Este es el resultado:



Lo siguiente que debería hacer es lo que dices del diccionario, pero ni idea, ¿cómo funciona lo del diccionario? ¿cómo hago que distinga cuál es la clave y cuál el valor?

Edito 2: He encontrado esto sobre los diccionarios: http://msdn.microsoft.com/es-es/library/xfhwa508.aspx

Según lo que veo en el ejemplo, ¿debería crear entradas de dos strings por cada propiedad, en la que el primer string de cada entrada es el nombre de una propiedad? aún así sigo sin entender cómo puedo luego identificar una propiedad, y que si la siguiente palabra no es una propiedad, sino un valor, se lo asigne en el diccionario a la última propiedad que ha leído.

Edito 3: Creo que ya lo he solucionado, este es el código completo y captura de pantalla del resultado:

Código vb:
Ver original
  1. Imports System
  2. Imports System.IO
  3.  
  4. Module Module1
  5.     Private s As String
  6.     Private leyendopropiedad As String
  7.     Private Diccionario As New Dictionary(Of String, String)
  8.  
  9.     Sub Main()
  10.  
  11.         Diccionario.Add("generator-settings", "")
  12.         Diccionario.Add("allow-nether", "")
  13.         Diccionario.Add("level-name", "")
  14.         Diccionario.Add("enable-query", "")
  15.         Diccionario.Add("allow-flight", "")
  16.         Diccionario.Add("server-port", "")
  17.         Diccionario.Add("level-type", "")
  18.         Diccionario.Add("enable-rcon", "")
  19.         Diccionario.Add("force-gamemode", "")
  20.         Diccionario.Add("level-seed", "")
  21.         Diccionario.Add("server-ip", "")
  22.         Diccionario.Add("max-build-height", "")
  23.         Diccionario.Add("spawn-npcs", "")
  24.         Diccionario.Add("white-list", "")
  25.         Diccionario.Add("spawn-animals", "")
  26.         Diccionario.Add("texture-pack", "")
  27.         Diccionario.Add("snooper-enabled", "")
  28.         Diccionario.Add("hardcore", "")
  29.         Diccionario.Add("online-mode", "")
  30.         Diccionario.Add("pvp", "")
  31.         Diccionario.Add("difficulty", "")
  32.         Diccionario.Add("server-name", "")
  33.         Diccionario.Add("enable-command-block", "")
  34.         Diccionario.Add("gamemode", "")
  35.         Diccionario.Add("max-players", "")
  36.         Diccionario.Add("spawn-monsters", "")
  37.         Diccionario.Add("generate-structures", "")
  38.         Diccionario.Add("view-distance", "")
  39.         Diccionario.Add("spawn-protection", "")
  40.         Diccionario.Add("motd", "")
  41.  
  42.         Dim path As String = "server.properties"
  43.         Dim sw As StreamWriter
  44.         Dim readText() As String = File.ReadAllLines(path)
  45.         For Each s In readText
  46.             Dim split As String() = s.Split(New [Char]() {"="c})
  47.  
  48.             For Each s As String In split
  49.                 If s.Trim() <> "" Then
  50.                     If Not s.StartsWith("#") Then
  51.                         If Diccionario.ContainsKey(s) Then
  52.                             leyendopropiedad = s
  53.                         Else
  54.                             If Not Diccionario.ContainsKey(s) Then
  55.                                 Diccionario(leyendopropiedad) = s
  56.                                 Sub1()
  57.                             End If
  58.                         End If
  59.                     End If
  60.                 End If
  61.             Next s
  62.         Next
  63.  
  64.         Console.ReadLine()
  65.  
  66.             End Sub
  67.     Private Sub Sub1()
  68.         Dim value As String = ""
  69.         Dim key As String = leyendopropiedad
  70.         If Diccionario.TryGetValue(key, value) Then
  71.             Console.WriteLine("La propiedad " & """" & key & """" & ", está establecida en = {0}.", value)
  72.         Else
  73.            
  74.         End If
  75.     End Sub
  76. End Module



Ahora iré a por los pasos 3 y 4 :P

Última edición por vistaero; 20/08/2013 a las 12:43