Lendo String

.NET

29/02/2012

Pessoal, alguém sabe como posso ler uma string?

Ex: Bloqfull = 07:3008:0008:3009:0009:3010:0010:3011:0011:3012:0012:3013:0013:3014:0014:30;
Hora = 08:00;

Preciso que selecione em Bloqfull o valor igual ao de hora e copiei mais (X) casas após ela.

Exemplo com 10.

Ex: Fim =08:0008:3009:00

Desde já obrigado.
Thiago Garcez

Thiago Garcez

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

29/02/2012

Saca só:

string Bloqfull = 07:3008:0008:3009:0009:3010:0010:3011:0011:3012:0012:3013:0013:3014:0014:30;
string hora = 08:00;
int X = 10;
string parte = Bloqfull.Substring(Bloqfull.IndexOf(hora), X+hora.Length);//aqui está o que você procura


Boa sorte.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Saca só:

string Bloqfull = 07:3008:0008:3009:0009:3010:0010:3011:0011:3012:0012:3013:0013:3014:0014:30;
string hora = 08:00;
int X = 10;
string parte = Bloqfull.Substring(Bloqfull.IndexOf(hora), X+hora.Length);//aqui está o que você procura


Boa sorte.


Puts! Muito bom! Era o que eu precisava, se não for abusar, eu postei essa dúvida tem um tempinho mais ninguém me respondeu.
Tenho DropDownList que vai ser carregados por hora, porém eu só tenho o inicio e o fim no banco de dados.

Ex: Inicio 09:00 fim 22:00

eu precisava que o combo fosse carregado com os horario no intervalo certo.

Ex: 09:00
09:30
10:00
10:30
.....
21:00
22:00

Alguém tem alguma ideia?

GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Saca só:

string Bloqfull = 07:3008:0008:3009:0009:3010:0010:3011:0011:3012:0012:3013:0013:3014:0014:30;
string hora = 08:00;
int X = 10;
string parte = Bloqfull.Substring(Bloqfull.IndexOf(hora), X+hora.Length);//aqui está o que você procura


Boa sorte.


Funcionou eu tentei mudar uma coisinha mais não deu erro e se eu quiser parte não receba mais o hora só o que vem depois?

string Bloqfull = 07:3008:0008:3009:0009:3010:0010:3011:0011:3012:0012:3013:0013:3014:0014:30;
string hora = 08:00;
int X = 10;
string parte = 08:3009:00
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Altere para:

string parte = Bloqfull.Substring(Bloqfull.IndexOf(hora)+hora.Length, X);

Assim, a variável PARTE irá conter somente o texto de tamanho definido após a variável HORA.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Com relação a seu outro post, mande o link para eu postar a resposta lá.
Mas a resolução é a seguinte:
---
TimeSpan intervalo = new TimeSpan(0, 30, 0);//0h 30min 0s
string ini = 9:00, fim = 22:00;//exemplos
DateTime dtIni = DateTime.Parse(ini);
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario < dtFim)
{
horario = horario.Add(intervalo);
listBox1.Items.Add(horario.ToShortTimeString());
}
---
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Com relação a seu outro post, mande o link para eu postar a resposta lá.
Mas a resolução é a seguinte:
---
TimeSpan intervalo = new TimeSpan(0, 30, 0);//0h 30min 0s
string ini = 9:00, fim = 22:00;//exemplos
DateTime dtIni = DateTime.Parse(ini);
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario < dtFim)
{
horario = horario.Add(intervalo);
listBox1.Items.Add(horario.ToShortTimeString());
}
---


Segue o link... https://www.devmedia.com.br/forum/net/413311-CheckBoxList.html
no lugar de List posso usar Datatble? ou posso usar .fill para lojar para a DropDownList?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Ao invés do ListBox, você pode sim usar o DropDownList. No exemplo, não há necessidade de criar um DataTable, pois os dados (cada horário) é gerado dinamicamente, bastando adicionar aos itens do DropDownList.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012



no lugar de List posso usar Datatble? ou posso usar .fill para lojar para a DropDownList?


Esquece isso!!! Rsrs viajei, vou testar e obrigado.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Com relação a seu outro post, mande o link para eu postar a resposta lá.
Mas a resolução é a seguinte:
---
TimeSpan intervalo = new TimeSpan(0, 30, 0);//0h 30min 0s
string ini = 9:00, fim = 22:00;//exemplos
DateTime dtIni = DateTime.Parse(ini);
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario < dtFim)
{
horario = horario.Add(intervalo);
listBox1.Items.Add(horario.ToShortTimeString());
}
---


Perfeito! Muito obrigado!!!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Disponha, companheiro.
Precisando...
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Ele só não está adicionando o primeiro o horar você botou 09:00 ele começa a carregar com 09:15 tentei isso antes do while mais não funcionou

horario = horario.Add(ini);
DdlHorario.Items.Add(horario.ToShortTimeString());
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Inverta a ordem, primeiro adicione o item ao DropDownList e depois incremente o valor (horario = horario.Add(intervalo);).
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Ah, tem que mudar o sinal também. Ao invés de menor, tem que usar menor ou igual.

while (horario <= dtFim)
{
//adicione o item
horario = horario.Add(intervalo);
}
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Ah, tem que mudar o sinal também. Ao invés de menor, tem que usar menor ou igual.

while (horario <= dtFim)
{
//adicione o item
horario = horario.Add(intervalo);
}

Foi mal a demora, blz o sinal eu tinha visto Obrigado!
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Aproveitando o assunto como varia para ler tudo, uma variável que eu alimentei por linha?

Ex: txt1.text = 12
32
43
654
345
3453
2345

GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Não entendi bem sua pergunta, pode ser mais claro?
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

public void VerificarCheckList()
{
for (int i = 0; i < CblServicos.Items.Count; i++)
{
if (CblServicos.Items[i].Selected)
{
LblMsg2.Text += CblServicos.Items[i].Value + <BR>
}
}
}


Eu tenho essa estrutura, onde ela recebe todos os códigos dos checklist marcados. ficando assim.


LblMsg2.text = 12
23
123
543
342
2345

Pensei em fazer igual aquele de ler uma linha inteira pegando por parte, porém cada parte não será igual, pois um código pode ter 2 numeros e outros 4 numeros, então pensei em inserir os código por linha o que eu não sei é como ler e cada linha.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Teste o seguinte:

- Primeiramente, ao invés de <BR> use <br/> (segundo o padrão xHTML, deve-se usar todas as tags em minúsculas e todas as tags devem ser fechadas).
- Escreva o seguinte código:
string novoTexto = lblTeste.Text.Replace(<br/>, |); //Substitui o <br/> por um |, para permitir o split.
string[] codigos = novoText.Split(|); // a variável codigos agora é um array de strings contendo os códigos separadamente

Boa sorte.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Teste o seguinte:

- Primeiramente, ao invés de <BR> use <br/> (segundo o padrão xHTML, deve-se usar todas as tags em minúsculas e todas as tags devem ser fechadas).
- Escreva o seguinte código:
string novoTexto = lblTeste.Text.Replace(<br/>, |); //Substitui o <br/> por um |, para permitir o split.
string[] codigos = novoText.Split(|); // a variável codigos agora é um array de strings contendo os códigos separadamente

Boa sorte.


Muito Bom Vlw!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Observações:
- no Replace use aspas duplas, mas no Split use aspas simples (pois é apenas um char);
- no meu exemplo, o Label se chama lblTeste;
- depois do Split você poderá acessar cada código contido na variável codigos através de seu índice;
- se ao final do último código existir um <br/>, será adicionado um string vazio ao array após o split, então é bom que no final do texto você não adicione uma quebra de linha.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Cara quebrei a cabeça e não consegui a questão de hora.



Só pra relembrar você me orientou a fazer isso e deu certo!

TimeSpan intervalo = new TimeSpan(0, a.intervaloagn, 0);//0h 30min 0s
string ini = 09:00, fim = 22:00;//exemplos
DateTime dtIni = DateTime.Parse(ini);
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario <= dtFim)
{
DdlHorario.Items.Add(horario.ToShortTimeString());
horario = horario.Add(intervalo);
}


Só to tentando fazer é o seguinte.

Montei uma estrura onde ele verificar o dia, se o dia escolhido for igual ao de hoje!
ele pega a hora do Servido,

ex: LblHoraNow.Text = String.Format({0:hh:mm}, DateTime.Now);

Antes dele começar a montar os horarios

ex:DateTime dtIni = DateTime.Parse(LblHoraNow.Text);

Queria que ele verificasse o tempo minimo antes.

ex: HoraAgora = 15:00

tempo minimo = 120 min

ou seja o horario inicial para começar a carregar o DropDdownlist seria 17:00

DateTime dtIni = DateTime.Parse(ini);

Queria saber como verificar isso, pegar HoraAgora e somar X minutos.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Cara, se você já tem um DateTime e quer somar alguma quantidade, a classe possui métodos pra isso. .AddMinutes, AddDays, etc.
Tente aí.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Por exemplo, vocÊ pode fazer:

horario = dtIni.AddMinutes(120);
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Por exemplo, vocÊ pode fazer:

horario = dtIni.AddMinutes(120);
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Maravilha vou testar
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Por exemplo, vocÊ pode fazer:

horario = dtIni.AddMinutes(120);


Consegui não, segue abaixo a estrutura

LblHoraNow.Text = String.Format({0:hh:mm}, DateTime.Now);
TimeSpan intervalo = new TimeSpan(0, a.intervaloagn, 0);//0h 30min 0s

LblHoraNow.Text = String.Format({0:hh:mm}, DateTime.Now.AddMinutes(120));
DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
DateTime dtFim = DateTime.Parse(a.hora_fim);
DateTime horario = dtIni;
while (horario <= dtFim)
{
DdlHorario.Items.Add(horario.ToShortTimeString());
horario = horario.Add(intervalo);
}
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Obrigado funcionou sim.

TimeSpan intervalo = new TimeSpan(0, a.intervaloagn, 0);//0h 30min 0s

LblHoraNow.Text = String.Format({0:hh:mm}, DateTime.Now.AddMinutes(120));
DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
string fim = 22:00;
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario <= dtFim)
{
DdlHorario.Items.Add(horario.ToShortTimeString());
horario = horario.Add(intervalo);
}

minha questão é como eu formato para 24H pois está pegando de 12 em 12.
aproveitando, tem como eu selecionar a data por parte.

Ex: hora agora 19:17 mais eu quero apenas 19:00 ou 19:30
ou hora agora 19:17 mais eu quero apenas 19:00 19:15 19:30
e por ai vai????

Foi mal estar te pertubando tanto! mais pelo visto ainda preciso estudar muito C# e VS2010..
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Consegui resolver assim...

LblHoraNow.Text = Convert.ToString(DateTime.Now.Hour)+:00;
Ex: 19:00

unica coisa que agora eu não consegui é adicionar os minutos.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Se os minutos são pré-definidos por 15, 30 e 45, você pode verificar em que intervalo estão os minutos da hora atual. Exemplo:
SE <= 15 ENTAO 15
SENAO
SE <= 30 ENTAO 30
SENAO
SE <= 45 ENTAO 45

ou algo do tipo que atenda a sua necessidade.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Se os minutos são pré-definidos por 15, 30 e 45, você pode verificar em que intervalo estão os minutos da hora atual. Exemplo:
SE <= 15 ENTAO 15
SENAO
SE <= 30 ENTAO 30
SENAO
SE <= 45 ENTAO 45

ou algo do tipo que atenda a sua necessidade.


Blz, isso eu já tinha conseguido, após a mudança o que eu não consegui mais é adicionar aqueles 120 minutos ou 60.....

LblHoraNow.Text = Convert.ToString(DateTime.Now.Hour)+:00;

Após pegar a data é ai que eu n~~ao to conseguindo mais adicionar..
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Mostre o trecho de código completo, por favor, apontando onde ocorre o problema.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

 int inter = 30;
                TimeSpan intervalo = new TimeSpan(0, inter, 0);//0h 30min 0s
                LblHoraNow.Text = String.Format({0:hh:mm}, DateTime.Now.Hour);//AddMinutes(120));
                DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
                string fim = 22:00;
                DateTime dtFim = DateTime.Parse(fim);
                DateTime horario = dtIni;
                while (horario <= dtFim)
                {
                    DdlHorario.Items.Add(horario.ToShortTimeString());
                    horario = horario.Add(intervalo);
                }


Assim funcionou o problema que desta forma ele fica apenas em 12 e 12 horas e precisa ser 24h, então fizmudei para isso.


int inter = 30;
TimeSpan intervalo = new TimeSpan(0, inter, 0);//0h 30min 0s

LblHoraNow.Text = Convert.ToString(DateTime.Now.Hour)+:00)

Aqui não consigo inserir os 120 min.

Ex: LblHoraNow.Text = AddMinutes(120));

DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
string fim = 22:00;
DateTime dtFim = DateTime.Parse(fim);
DateTime horario = dtIni;
while (horario <= dtFim)
{
DdlHorario.Items.Add(horario.ToShortTimeString());
horario = horario.Add(intervalo);
}
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Se você quer somar 120 minutos ao horário contido no label, você deve fazer algo como:

//...ler o dtIni
DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
dtIni = dtIni.AddMinutes(120);
//...continuar o processo
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Ah, desculpe, agora analisando melhor seu código foi que percebi que não fui claro o bastante na explicação do AddMinutes.
A classe DateTime possui métodos para adicionar unidades ao seu valor atual, ou seja, chama-se os métodos Add (AddMinutes, AddDays, AddSeconds, etc) a partir de um objeto DateTime. Os métodos, por sua vez, retornam um novo DateTime com valor alterado.
No seu caso, você precisa adicionar os minutos após definir a hora inicial que vem do texto de um label.
Exemplo:
---
//ler valor inicial do label
dtIni = dtIni.AddMinutes(120)// adiciona 120 minutos ao valor atual
//continuar processo
---

Qualquer dúvida, é só falar.
GOSTEI 0
Thiago Garcez

Thiago Garcez

29/02/2012

Se você quer somar 120 minutos ao horário contido no label, você deve fazer algo como:

//...ler o dtIni
DateTime dtIni = DateTime.Parse(LblHoraNow.Text);
dtIni = dtIni.AddMinutes(120);
//...continuar o processo


Boa, eu tentava acidionar tudo junto por isso dava erro. Muito Obrigado!!
GOSTEI 0
Rodrigo Odasaki

Rodrigo Odasaki

29/02/2012

re
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

29/02/2012

Que bom que deu certo.
Se tiver outra questão, abra um novo tópico, pois este já está até um tanto bagunçado.

Abraço.
GOSTEI 0
POSTAR