last day (14 days later) » 

1:28 PM
0
Q: Identificando uma String como nome de váriavel Pascal

Murilo HL AdTenho 50 váriaveis do tipo array e tenho um método que vai receber uma String contendo um nome de uma váriavel existente. Gostaria de saber qual é a forma ideal para identificar o valor da String recebida como uma das 50 váriaveis declaradas no programa. Aqui está uma das 50 nomenclaturas de vár...

 
Tenho quase certeza que existe uma forma menos complicada de fazer o que você está querendo fazer.
 
O único jeito que tenho em mente no momento, porém não ideal é fazendo um case e associando cada valor recebido.
A intenção seria "converter" esse valor da String, passando a reconhecê-lo como a váriavel declarada.
 
Mas qual o objetivo?
Esses arrays sempre terão o mesmo tamanho?
 
O objetivo é reconhecer o valor como uma váriavel, para ser mais claro tenho um projeto do técnico e no momento estou focando apenas em uma estrutura do programa. Se possível fazer isso sem utilizar case já ajudaria.
Correto, porém nomenclaturas e valores diferentes
 
Qual a versão do delphi? Onde estão declaradas essas variáveis?
 
1:28 PM
Estou utilizando o Delphi XE6 (desenvolvimento móvel), mas penso que isso não influência de certa forma na sintaxe aplicada em Pascal, afinal você tem uma solução?
 
Influência se vc fizer uma solução usando RTTI
Porquê não usar um array of array [1..4] of string?
 
Vem aqui no chat
Um array of array seria uma matriz, correto?
 
sim
ao inves de string pra identificar as variaveis
voce poderia passar o indice que vc deseja trabalhar
na funcao
 
Preciso estar trabalhando com 50 váriaveis do tipo array, cujo recebem 4 valores String
 
entao vc declararia array[0..50] of array [0..4] of string
 
1:30 PM
Pra ser mais exato, são 50 acordes musicais
e cada acorde possuí 4 notas
Essas 4 notas serão tocadas
Mas primeiramente teria q identificar a variavel (o acorde)
Tenho aqui um outro exemplo
 
C: array[1..4] of String = ('C','E','G','C');
D: array[1..4] of String = ('D','F#','A','D');
A intenção seria verificar o acorde que a pessoa escolheu
C ou D, e tratar esse valor recebido como uma váriavel
Tem alguma ideia?
 
eu faria com array of array of string, dentro do sistema eu associaria o array de letras ao de acordes
 
um array of array eu poderia estar trabalhando com tudo isso correto?
 
1:34 PM
os 50 acordes com os 4 valores cada em uma única matriz?
correto?
 
Daria então a declaração dessa váriavel como
array[1..50] of array[1..4] of String?
E poderia estar definindo os valores de que forma? acordes:array[1..50] of array[1..4] of String = ('a','b','c','d'),('d','e','f','g')?
Tá ai amigo?
Brigadão, ta se desenvolvendo agr kkkkk
@EProgrammerNotFound Mas ainda assim to com um problema de sintaxe, quando você não tiver ocupado me chame
 
opa! Só quero ler o que vocês estão arrumando nesse caso
 
lkkkkkkk
Seguinte
Estou aqui fazendo o projeto para o técnico, preciso trabalhar com 50 acordes
 
na boa, estou lendo
 
1:46 PM
Mas queria de certa forma ao receber uma String do usuário contendo o nome daquele acorde ele identificasse esse valor como uma váriavel
var
C: array[1..4] of String = ('C','E','G','C');
D: array[1..4] of String = ('D','F#','A','D');
E: array[1..4] of String = ('E','G#','B','E');
Um exemplo dos 3 acordes
 
Entendemos isso, você quer identificar o que o usuário pediu e obter o resultado
 
Praticamente seria converter esse valor da string, correto
 
O que o @EProg falou tá certo.
 
Só que estou tendo problemas com a declaração da matriz
 
não existe uma forma de identificar a variável pelo nome da string
com a matriz você faria loops e obteria o que deseja
 
1:48 PM
Gostaria de fazer em uma única declaração
Isso, seguindo essa lógica
Queria unir essas 3 declarações que eu fiz ali em cima
Mas dá erro de sintaxe
 
var Matrix: array [0..50] of array [0..4] of string;
 
acordes: array[1..50] of array[1..4] of String = ('C','E','G','C'),('D','F#','A','D'),('E','G#','B','E');
Tentei dessa forma, erro de sintaxe..
 
esta faltando um abre parenteses
em volta de tudo
 
Sim, isso não é problema..

var matriz: array[0..5, 0..50] of array of string = (
...
)
é assim
 
Obrigado..........................
Funcionando
o/
 
1:51 PM
boa
 
Agora posso fazer da forma de loop, como você mencionou @TiagoSilva
E obrigado @EProgrammerNotFound
 
mas é 0..49 ou 1..50, ou 0..50
essas coisas fogem à cabeça
 
Gostaria que a posição inicia-se do 1
 
0..50 tem 51 posicoes
 
E não a contagem do 0
 
1:52 PM
1..50 tem 50 posicoes
 
Isso
A posição 1 seria equivalente a contagem 2
E então resolvi começar na contagem 1 como posição 1
 
é.. confunde, quando você vai em C e declara "int[50] ops;" é de 0..49.
 
kkkkk isso
 
ok sobre sua itenção de índices
 
Até porque eu fiz uma suposição de 50, mas na verdade vai dar uns 120
 
1:54 PM
@Tiago, a: array [0..1] of array [0..1] of string =
(('a','b'), ('a','b')); assim tambem dava certo, mas é melhor da forma q vc escreveu
mais claro para ler
 
É que não estou com tempo para contar todos os acordes (são muitos)
 
@Eprog, compila?
 
É meu projeto final do técnico (TCC), então estou ralando
 
aff.. rs
 
1:54 PM
Valeu mesmo pela ajuda
Agora se permite estarei indo
Agradeço @EProgrammerNotFound
 

last day (14 days later) »