[RESOLVIDO] Preciso de uma ajudinha script c# !!!
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Preciso de uma ajudinha script c# !!!
Ola, os meus dados estão em um arquivo txt, e quero guardar as informações contidas nele em um dicionário c#
o script do meu dicionário é este:
e o scrpt da minha função para encontrar a chave é este
o formato do meu arquivo txt esta assim key = value,
e no unity aparece o erro que a chave "barra2" não esta presente no dicionário.
Ja tentei adicionar a barra2 tanto pela função Add quando manualmente no arquivo txt, mas ele não encontra.
Me ajudem rsrsrs
o script do meu dicionário é este:
- Código:
public class Dictionary
{
public static Dictionary<string, string> dict = new Dictionary<string, string>();
//{{"barra1", "dados1" }};
string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";
string line;
void Start()
{
StreamReader reader = new StreamReader(filePath);
while ((line = reader.ReadLine()) != null)
{
// Dividir a linha em chave e valor
string[] parts = line.Split('=');
string key = parts[0];
string value = parts[1];
dict.Add(key, value);
dict.Add("barra2", "dados2");
}
}
}
e o scrpt da minha função para encontrar a chave é este
- Código:
public class SearchBar : MonoBehaviour
{
void Start()
{
Dictionary<string, string> dict = Dictionary.dict;
string value = dict["barra2"];
Debug.Log(value);
}
}
o formato do meu arquivo txt esta assim key = value,
e no unity aparece o erro que a chave "barra2" não esta presente no dicionário.
Ja tentei adicionar a barra2 tanto pela função Add quando manualmente no arquivo txt, mas ele não encontra.
Me ajudem rsrsrs
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
A função Start da unity precisa herdar do MonoBehaviour para ser inicializada, portanto já que a classe Dictionary nao herda o MonoBehaviour e não esta adicionada a nenhum objeto ,tanto a void Start() quanto as outras padroes da unity nao serão chamadas.
vc tem duas opçoes herdar o Monobehaviour
eu adicionei outra key, "nome" no txt
entre outros jeitos, ignora esse http ai nao sei como apareceu kkk
vc tem duas opçoes herdar o Monobehaviour
- Código:
public class Dictionary : MonoBehaviour{ etc }
eu adicionei outra key, "nome" no txt
- Código:
public class SearchBar : MonoBehaviour
{
void Start()
{
Debug.Log("Olá sou a classe SearchBar");
var dic = new Dictionary();
Dictionary<string, string> dict =dic.GetDict();
string value = dict["barra2"];
string value2 = dict["nome"];
Debug.Log(value);
Debug.Log(value2);
}
}
- Código:
public class Dictionary
{
private Dictionary<string, string> dict = new Dictionary<string, string>();
//{{"barra1", "dados1" }};
//string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";
string filePath = @"C:\Users" + System.Environment.UserName + @"\Desktop\dictBarras.txt"; http://System.Environment.UserName pega o nome do usuario do windows.
string line;
public Dictionary()
{
Debug.Log("Olá sou a classe Dictionary");
StreamReader reader = new StreamReader(filePath);
while ((line = reader.ReadLine()) != null)
{
// Dividir a linha em chave e valor
string[] parts = line.Split('=');
string key = parts[0];
string value = parts[1];
dict.Add(key, value);
//dict.Add("barra2", "dados2");
}
}
public Dictionary<string, string> GetDict()
{
return dict;
}
}
entre outros jeitos, ignora esse http ai nao sei como apareceu kkk
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
[list=linenums][*]
eu não entendi está parte..
[/list]
- Código:
//string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";[size=14][/size] string filePath = @"C:\Users\" + System.Environment.UserName + @"\Desktop\dictBarras.txt"; http://System.Environment.UserName pega o nome do usuario do windows.[size=14][/size] string line;[size=14][/size]
eu não entendi está parte..
[/list]
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
malamo escreveu:[list=linenums][*]
- Código:
//string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";[size=14][/size] string filePath = @"C:\Users" + System.Environment.UserName + @"\Desktop\dictBarras.txt"; http://System.Environment.UserName pega o nome do usuario do windows.[size=14][/size] string line;[size=14][/size]
eu não entendi está parte..
[/list]
bom o @ inclui o caractere especial em vez de usar "\\" ou "\"meunome\" meu nome vai sair entre aspas" posso simplesmente colocar @""meunome"" ou @"\"
https://www.macoratti.net/14/01/c_arroba.htm
nao sei muito como explicar ele mais vai neste contexto
agora o System.Environment.UserName pega automaticamente o nome de usuario do windows , simplesmente pode ser usado em qualquer ocasiao,
inves de digitar nome de usuario.
- Código:
//string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";
string filePath = @"C:\Users" + System.Environment.UserName + @"\Desktop\dictBarras.txt";
https://learn.microsoft.com/pt-br/dotnet/api/system.environment.username?view=net-7.0
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
Muitoooo obrigada pela atenção mais ainda esta dano um erro
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
esse é script do dicionario
- Código:
using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace DataDictionaryExample
{
public class Dicionario
{
private Dictionary<string, string> dict = new Dictionary<string, string>();
//string filePath = "C:\\Users\\iara.esc\\Desktop\\dictBarras.txt";
string filePath = @"C:\Users\iara.esc\dicionario\Assets\Scripts\dictBarras.txt";
string line;
public Dicionario()
{
Debug.Log("Olá sou a classe Dictionary");
StreamReader reader = new StreamReader(filePath);
while ((line = reader.ReadLine()) != null)
{
// Dividir a linha em chave e valor
string[] parts = line.Split('=');
string key = parts[0];
string value = parts[1];
dict.Add(key, value);
}
}
public Dictionary<string, string> GetDict()
{
return dict;
}
}
}
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
Esse é da função
- Código:
using System.Collections.Generic;
using UnityEngine;
namespace DataDictionaryExample
{
public class FuncaoDict : MonoBehaviour
{
void Start()
{
Debug.Log("Olá sou a classe SearchBar");
var dic = new Dicionario();
Dictionary<string, string> dict = dic.GetDict();
string value = dict["barra2"];
string value2 = dict["nome"];
Debug.Log(value);
Debug.Log(value2);
}
}
}
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
Para contextualizar preciso capturar os valores de um aquivo txt em um dicionario de dados c# de dessa formatação key=value
e depois acessar esses valores
este e o erro que aparece
e depois acessar esses valores
este e o erro que aparece
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
malamo escreveu:Para contextualizar preciso capturar os valores de um aquivo txt em um dicionario de dados c# de dessa formatação key=value
e depois acessar esses valores
este e o erro que aparece
esta parte nao sei o que pode ser, olhou direito o arquivo de texto, esse erro pode aparecer se o "=" nao for encontrado
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
oiii
esse é o arquivo
esse é o arquivo
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
parece tudo ok, eu estou usando seu exemplo e nao tem esse erro kkk
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
eitaaa kkk vou dar uma pesquisada a mais , se caso pensar em algo estamos ai rsrsrrss
Mas obrigadaaaa!!!!!!
Mas obrigadaaaa!!!!!!
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
só uma coisa , vai no seu aquivo de texto e apaga as outras linhas vazia e deixa apenas a linha que tem a chave e valor, depois salva.
as linhas vazias pode ser o motivo do erro
as linhas vazias pode ser o motivo do erro
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
oiii arrumei as linhas vazias
agora erro é que a barra2 não foi encontrada no dicionario
agora erro é que a barra2 não foi encontrada no dicionario
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
vai no dicionario e sobrepoe e ve se corrige
- Código:
public Dicionario()
{
Debug.Log("Olá sou a classe Dictionary");
StreamReader reader = new StreamReader(filePath);
while ((line = reader.ReadLine()) != null)
{
// Dividir a linha em chave e valor
if (!string.IsNullOrEmpty(line))
{
string[] parts = line.Split('=');
string key = parts[0].Trim();
string value = parts[1].Trim();
dict.Add(key, value);
}
}
}
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
deu certooooo!!!!!!! Arrazou !!! Obrigada
malamo- Iniciante
- PONTOS : 760
REPUTAÇÃO : 4
Respeito as regras :
Re: [RESOLVIDO] Preciso de uma ajudinha script c# !!!
https://learn.microsoft.com/pt-br/dotnet/standard/base-types/trimming
Tópicos semelhantes
» [RESOLVIDO] Ajudinha com código
» preciso de ajuda sobre script
» preciso de um programador script
» preciso de ajuda com animação e script
» PRECISO DE UM SCRIPT DE TELEPORTE UNITY 2D
» preciso de ajuda sobre script
» preciso de um programador script
» preciso de ajuda com animação e script
» PRECISO DE UM SCRIPT DE TELEPORTE UNITY 2D
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos