-
11. Data: 2011-05-04 20:38:01
Temat: Re: Powershell plik tekstowy
Od: "Jordan Szubert" <u...@j...us.to>
Dnia 04-05-2011 o 22:24:51 Grzegorz Niemirowski
<g...@p...onet.pl> napisał(a):
> Slawek <b...@o...pl> napisał(a):
>> Chcę z linii drugiej wyciągnąć liczbę 40 bez żadnych pętli
>> CurrentReading: 21
>> CurrentReading: 40
>> CurrentReading: 19
>> może trochę zagmatwałem to wszystko :-)
>
> 1. W czym Ci pętla przeszkadza? Chyba nie ma znaczenia jakiej
> konstrukcji języka użyjesz :)
> 2. Co rozumiesz przez wyciągnięcie liczby? Tak jak pokazuje przykład,
> liczba jest w tablicy $matches pod indeksem 1.
>
> Generalnie brakuje mi dokładnego algorytmu albo nie udało mi się go
> zrozumieć. Chcesz listę liczb większych od zadanej? Chcesz największą?
> Chcesz pierwszą z brzegu większą od zadanej?
IMO mu chodzi o druga z trzech liczb, a nie kazda z nie-wiadomo-ilu...
--
Jordan Szubert
-
12. Data: 2011-05-04 20:42:55
Temat: Re: Powershell plik tekstowy
Od: "Slawek" <b...@o...pl>
Może od początku
Z WMI wyciągam listę dostępnych sensorów temperatury z płyty głównej z ich
wartościami (st Celsjusza) czyli to jest mój plik test.txt
CurrentReading: 21
CurrentReading: 21
CurrentReading: 40
CurrentReading: 19
CurrentReading: 25 <---
CurrentReading: 17
CurrentReading: 29
CurrentReading: 20
CurrentReading: 22
CurrentReading: 23
CurrentReading: 22
CurrentReading: 20
CurrentReading: 19
CurrentReading: 19
CurrentReading: 21
CurrentReading: 20
CurrentReading: 22
CurrentReading: 29
CurrentReading: 25
CurrentReading: 19
CurrentReading: 20
CurrentReading: 44
chcę tak w "obrobić" ten plik textowy aby tylko z linii 5 i tylko z tej
linii wyciągnąć wskazanie temperatury czyli 25 i porównać to do wartości 30
i jeżeli ta wartość będzie mniejsza od 30 to jest wszystko ok a jeżeli
będzie większa od 30 to skrypt wyśle maila z informacja "Słuchaj wzrasta
temperatura w komputerze" :-) , reszta linii (temperatur) mnie nie
interesuje
Użytkownik "Grzegorz Niemirowski" napisał w wiadomości grup
dyskusyjnych:ipscle$il4$...@o...icpnet.pl...
Slawek <b...@o...pl> napisał(a):
> Chcę z linii drugiej wyciągnąć liczbę 40 bez żadnych pętli
> CurrentReading: 21
> CurrentReading: 40
> CurrentReading: 19
> może trochę zagmatwałem to wszystko :-)
1. W czym Ci pętla przeszkadza? Chyba nie ma znaczenia jakiej konstrukcji
języka użyjesz :)
2. Co rozumiesz przez wyciągnięcie liczby? Tak jak pokazuje przykład, liczba
jest w tablicy $matches pod indeksem 1.
Generalnie brakuje mi dokładnego algorytmu albo nie udało mi się go
zrozumieć. Chcesz listę liczb większych od zadanej? Chcesz największą?
Chcesz pierwszą z brzegu większą od zadanej?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 2 days, 12 hours, 8 minutes and 49 seconds
-
13. Data: 2011-05-04 20:43:12
Temat: Re: Powershell plik tekstowy
Od: p...@p...onet.pl
> Witam
>
> W pliku tekstowym mam coś takiego :
>
> Accuracy:
> CurrentReading: 19
> CurrentState: Normal
> Description: Temperature Sensor 3 detects for Memory board. Temperature
> reported by the sensor is within normal operating range.
> DeviceID: Temperature Sensor 3
>
> Accuracy:
> CurrentReading: 40
> CurrentState: Normal
> Description: Temperature Sensor 7 detects for Memory board. Temperature
> reported by the sensor is within normal operating range.
> DeviceID: Temperature Sensor 7
>
> Accuracy:
> CurrentReading: 18
> CurrentState: Normal
> Description: Temperature Sensor 17 detects for Ambient / External / Room.
> Temperature reported by the sensor is within normal operating range.
> DeviceID: Temperature Sensor 17
>
nie wiem jak w powershellu ale w jakims troche poprawionym c to by bylo jak
main()
{
int max_value = 0;
for(;;)
{
int end_of_file, char* line = get_line("inputfile.txt");
if(end_of_file) break;
if(check_for_substring(line, ""CurrentReading:"))
{
remove_substring(line, ""CurrentReading:");
remove_white_spaces(line);
int value = string_to_int(line);
if(value>max_value) max_value = value;
}
}
if(max_value>45) send_email("w...@s...com", "alarm");
}
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
14. Data: 2011-05-04 20:47:15
Temat: Re: Powershell plik tekstowy
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Slawek <b...@o...pl> napisał(a):
> Może od początku
> Z WMI wyciągam listę dostępnych sensorów temperatury z płyty głównej z
> ich wartościami (st Celsjusza) czyli to jest mój plik test.txt
> CurrentReading: 21
> CurrentReading: 21
> CurrentReading: 40
> CurrentReading: 19
> CurrentReading: 25 <---
> CurrentReading: 17
> CurrentReading: 29
> CurrentReading: 20
> CurrentReading: 22
> CurrentReading: 23
> CurrentReading: 22
> CurrentReading: 20
> CurrentReading: 19
> CurrentReading: 19
> CurrentReading: 21
> CurrentReading: 20
> CurrentReading: 22
> CurrentReading: 29
> CurrentReading: 25
> CurrentReading: 19
> CurrentReading: 20
> CurrentReading: 44
> chcę tak w "obrobić" ten plik textowy aby tylko z linii 5 i tylko z tej
> linii wyciągnąć wskazanie temperatury czyli 25 i porównać to do wartości
> 30 i jeżeli ta wartość będzie mniejsza od 30 to jest wszystko ok a
> jeżeli będzie większa od 30 to skrypt wyśle maila z informacja "Słuchaj
> wzrasta temperatura w komputerze" :-) , reszta linii (temperatur) mnie
> nie interesuje
$wartosci = @();
gc test.txt | foreach { if ($_ -match "CurrentReading: (\d.*)") { $wartosci
+= $matches[1] } }
$wartosci[4]
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 2 days, 12 hours, 33 minutes and 48 seconds
-
15. Data: 2011-05-05 08:29:28
Temat: Re: Powershell plik tekstowy
Od: Mariusz Marszałkowski <m...@g...com>
On 4 Maj, 22:19, "Slawek" <b...@o...pl> wrote:
> Chcę z linii drugiej wyciągnąć liczbę 40 bez żadnych pętli
>
> CurrentReading: 21
> CurrentReading: 40
> CurrentReading: 19
>
A czemu nie w C++?
int main( ) {
char buf[1024];
fgets( stdio , sizeof(buf) , buf );
fgets( stdio , sizeof(buf) , buf );
int liczba;
if( 1 != sscanf( buf , "%*s%s" , &liczba ) )
abort();
pritnf("%d\n",liczba);
return 0;
}
i potem w shelu:
program.exe < wejscie.txt > wyjscie.txt
Pozdrawiam
-
16. Data: 2011-05-05 09:21:47
Temat: Re: Powershell plik tekstowy
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Mariusz Marszałkowski <m...@g...com> napisał(a):
> i potem w shelu:
Bo można całość w shellu?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 3 days, 1 hours, 8 minutes and 9 seconds
-
17. Data: 2011-05-05 09:23:22
Temat: Re: Powershell plik tekstowy
Od: " " <f...@g...pl>
> > Accuracy:
>
> > CurrentReading: 19
>
> > CurrentState: Normal
>
> > Description: Temperature Sensor 3 detects for Memory board. Temperature
>
> > reported by the sensor is within normal operating range.
>
> > DeviceID: Temperature Sensor 3
>
> >
>
> > Accuracy:
>
> > CurrentReading: 40
>
> > CurrentState: Normal
>
> > Description: Temperature Sensor 7 detects for Memory board. Temperature
>
> > reported by the sensor is within normal operating range.
>
> > DeviceID: Temperature Sensor 7
>
> >
>
> > Accuracy:
>
> > CurrentReading: 18
>
> > CurrentState: Normal
>
> > Description: Temperature Sensor 17 detects for Ambient / External / Room.
>
> > Temperature reported by the sensor is within normal operating range.
>
> > DeviceID: Temperature Sensor 17
>
> >
>
> nie wiem jak w powershellu ale w jakims troche poprawionym c to by bylo jak
>
>
> main()
> {
> int max_value = 0;
>
> for(;;)
> {
> int end_of_file, char* line = get_line("inputfile.txt");
>
> if(end_of_file) break;
>
> if(check_for_substring(line, ""CurrentReading:"))
> {
> remove_substring(line, ""CurrentReading:");
> remove_white_spaces(line);
> int value = string_to_int(line);
> if(value>max_value) max_value = value;
> }
> }
>
> if(max_value>45) send_email("w...@s...com", "alarm");
> }
>
>
zgoda ze w pewnym sensie jest to przyklad
beznadziei (i to tez troche jakby programowanie
w javie jak ja je troche poznalem) ale abstrakcje
do przewalania tekstu to inny temat - a to chcialem
podac z jakichs niejasnych powodow (generalnie
jako czlowiek dolu mam ostatnio cos jak ' top
crisis'
>
>
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
18. Data: 2011-05-05 09:41:04
Temat: Re: Powershell plik tekstowy
Od: " " <f...@g...pl>
> > remove_white_spaces(line);
jest sie nad czym zastanowic np
czy takie wywolania powinny zwracac
druga instancje czy przerobic podana
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
19. Data: 2011-05-05 10:12:27
Temat: Re: Powershell plik tekstowy
Od: Mariusz Marszałkowski <m...@g...com>
On 5 Maj, 11:21, "Grzegorz Niemirowski" <g...@p...onet.pl>
wrote:
> Mariusz Marszałkowski <m...@g...com> napisał(a):
>
> > i potem w shelu:
>
> Bo można całość w shellu?
W sumie kwestia preferencji i tego jak kto dane narzedzie zna.
Ja osobiscie do tego typu zadan wole napisac kilka programow
w C, a w shellu tylko je zapetlic i odpowiednio przekierowac dane.
Pozdrawiam
-
20. Data: 2011-05-05 11:31:53
Temat: Re: Powershell plik tekstowy
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2011-05-05, Mariusz Marszałkowski <m...@g...com> wrote:
> On 5 Maj, 11:21, "Grzegorz Niemirowski" <g...@p...onet.pl>
> wrote:
>> Mariusz Marszałkowski <m...@g...com> napisał(a):
>>
>> > i potem w shelu:
>>
>> Bo można całość w shellu?
> W sumie kwestia preferencji i tego jak kto dane narzedzie zna.
Kwestia preferencji i tego jak łatwo będzie wynik utrzymać.
> Ja osobiscie do tego typu zadan wole napisac kilka programow
> w C, a w shellu tylko je zapetlic i odpowiednio przekierowac dane.
Ja osobiście do tego typu zadań używam jednak już gotowych narzędzi
(awk).
--
Secunia non olet.
Stanislaw Klekot