|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
Perchè non ho capito quando mi scrivi sd->Add("SD132","S01"); se devo metterci le stringhe o gli array. Se devo metterci le stringhe non va bene perchè quelle mi variano da file a file
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#22 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Astorcas ti posto il codice.
Questo è la scansione del file di testo che estrapola gli elementi "SDO". PALETTEITEM è l'array2 dell'esempio che tiavevo fatto prima. Mente SEGNALE è l'array1. Gli elementi dell'array SEGNALE vengono presi da un altro file ditesto. Codice:
//Scansione file .soe fin = fopen(SysStrToCh_p(soePath), "r"); int w = 0; while(w <= SEGNALEindex-1 && GetSoe == true) { fin = fopen(SysStrToCh_p(soePath), "r"); while(!feof(fin)) { fgets(ReadString, DimLine, fin); Line = gcnew String(ReadString); if(Line->Contains("Category: Infra")) { Temp = Line->Remove(0,Line->IndexOf(":")+1); Category = RemSpace(Temp->Remove(Temp->IndexOf("a")+1)); } if(Line->Contains("Type: Badge")) { Temp = Line->Remove(0,Line->IndexOf(":")+1); Type = RemSpace(Temp->Remove(Temp->IndexOf("e")+1)); } if(Line->Contains("Object_name:") && Line->Contains(SEGNALE->GetValue(w)->ToString())) { Temp = Line->Remove(0,Line->IndexOf(":")+1); Object_Name = RemSpace(Temp); Temp = Object_Name->Remove(0,1); Object_Name = Temp->Remove(Temp->IndexOf('"')); } if(Line->Contains("PaletteItem:") && Line->Contains("SDO") && Category == "Infra" && Type == "Badge" && Object_Name == SEGNALE->GetValue(w)->ToString()) { Temp = Line->Remove(0,Line->IndexOf(":")+1); Temp = RemSpace(Temp); PALETTEITEM->SetValue(Temp->Remove(6),PALETTEITEMindex); PALETTEITEMindex++; if(PALETTEITEMindex > MaxIndex) MaxIndex = PALETTEITEMindex; Category = ""; Type = ""; Object_Name = ""; break; } }//!feof(fin) fclose(fin); Category = ""; Type = ""; Object_Name = ""; w++; }//SEGNALEindex
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
ehm scusa, dal codice non riesco a capire molto mi spiace. Nel codice vedo solo l'utilizzo dell'array PALETTEITEM, SEGNALE viene popolato da un'altra parte?
|
![]() |
![]() |
![]() |
#24 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
Ho lavorato sugli indici degli array ti posto il codice. (Si SEGNALE viene popolato prima) Premetto che è un modo da principiante...però funziona! Codice:
int v = 0; while(v < PALETTEITEMindex) { Temp = PALETTEITEM->GetValue(v)->ToString(); Temp1 = PALETTEITEM->GetValue(v+1)->ToString(); Temp3 = SEGNALE->GetValue(v)->ToString(); Temp4 = SEGNALE->GetValue(v+1)->ToString(); if((Temp->Contains("SDO1") && (Temp1->Contains("SDO1") || Temp1->Contains("SDO2") || Temp1->Contains("SDO3"))) || (Temp->Contains("SDO2") && (Temp1->Contains("SDO2") || Temp1->Contains("SDO3"))) || (Temp->Contains("SDO3") && Temp1->Contains("SDO3"))) { v++; } else { PALETTEITEM->SetValue(Temp1,v); PALETTEITEM->SetValue(Temp,v+1); SEGNALE->SetValue(Temp4,v); SEGNALE->SetValue(Temp3,v+1); v = 0; } if(Temp == "" || Temp1 == "" || Temp3 == "" || Temp4 == "") { break; } }
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
bene, vedo che riempirti la testa di cose astruse ti ha spinto a cavartela da solo! Ok devo usarla come tecnica per spronare
![]() |
![]() |
![]() |
![]() |
#26 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
![]() Grazie mille Astorcas!
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#27 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Altro problema ma penso più semplice...
Quando mi stampa il file di log (.txt) mi appare in questo modo: Codice:
<Indicatore di direzione> IND21_DIR ----> Cifra2 ----> Cifra1 IND22_DIR ----> Cifra1 ----> Cifra2 ----> Cifra3 IND23_DIR ----> Cifra1 ----> Cifra2 IND24_DIR ----> Cifra1 ----> Cifra2 IND25_DIR ----> Cifra1 IND26_DIR ----> Cifra1 IND27_DIR ----> Cifra1 IND28_DIR ----> Cifra1 IND31_DIR ----> Cifra1 ----> Cifra2 IND32_DIR ----> Cifra1 ----> Cifra2 IND33_DIR ----> Cifra1 ----> Cifra2 IND34_DIR ----> Cifra1 ----> Cifra2 IND35_DIR ----> Cifra1 ----> Cifra2 IND36_DIR ----> Cifra1 ----> Cifra2 IND37_DIR ----> Cifra1 ----> Cifra2 IND38_DIR ----> Cifra1 ----> Cifra2 IND40_DIR ----> Cifra1 ----> Cifra2 IND41_DIR ----> Cifra1 ----> Cifra2 IND42_DIR ----> Cifra1 ----> Cifra2 IND61_DIR ----> Cifra1 IND62_DIR ----> Cifra1 Il numero dei Ind. Dir è: (37) Codice:
fprintf(fout,"<Indicatore di direzione>\n"); j = 0; while(j <= IndDirConfIndex-1) { fprintf(fout,"%s ----> %s\n\n",INDDIR->GetValue(j)->ToString(),IndDirConf->GetValue(j)->ToString()); j++; } fprintf(fout,"Il numero dei Ind. Dir è: (%d)\n"); fprintf(fout,"----------------------------\n"); Io vorrei che venissero stampate le cifre in colonna e non così che fa schifo. Come posso fare?
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#28 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Ho risolto così:
Codice:
j = 0; while(j <= IndDirConfIndex-1) { fprintf(fout,"%s\n ---------> (%s) \n",INDDIR1->GetValue(j)->ToString(),IndDirConf->GetValue(j)->ToString()); j++; } http://www.hwupgrade.it/forum/showth...4#post33140404 Ti ringrazio in anticipo.
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:40.