[R] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

[R] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#1

Message par Boulanza » ven. 17 mai 2019 01:30

Bonsoir
A partir du non d'un pays (Par exemple le pays: la France), je cherche un scripte qui me permet de localiser la ligne qui porte le nom du pays recherché pour extraire l’indicatif de ce pays (33) qui se trouve sur une liste des pays du monde ci-dessous ou un autre moyen plus simple pour connaitre l'indicatif téléphonique du pays recherché :
Merci infiniment pour votre aide.
Cordialement.
Dim $OsType[224] = ["Afghanista" & "_" & "AF" & "_" & "AFG" & "_" & "93", _
                "Albania" & "_" & "AL" & "_" & "ALB" & "_" & "355", _
                "Algeria" & "_" & "DZ" & "_" & "DZA" & "_" & "213", _
                "American Samoa" & "_" & "AS" & "_" & "ASM" & "_" & "1684", _
                "Andorra" & "_" & "AD" & "_" & "AND" & "_" & "376", _
                "Angola" & "_" & "AO" & "_" & "AGO" & "_" & "244", _
                "Anguilla" & "_" & "AI" & "_" & "AIA" & "_" & "1 264", _
                "Antarctica" & "_" & "AQ" & "_" & "ATA" & "_" & "672", _
                "Argentina" & "_" & "AR" & "_" & "ARG" & "_" & "54", _
                "Armenia" & "_" & "AM" & "_" & "ARM" & "_" & "374", _
                "Aruba" & "_" & "AW" & "_" & "ABW" & "_" & "297", _
                "Australia" & "_" & "AU" & "_" & "AUS" & "_" & "61", _
                "Austria" & "_" & "AT" & "_" & "AUT" & "_" & "43", _
                "Azerbaija" & "_" & "AZ" & "_" & "AZE" & "_" & "994", _
                "Bahamas" & "_" & "BS" & "_" & "BHS" & "_" & "1", _
                "Bahrai" & "_" & "BH" & "_" & "BHR" & "_" & "973", _
                "Bangladesh" & "_" & "BD" & "_" & "BGD" & "_" & "880", _
                "Barbados" & "_" & "BB" & "_" & "BRB" & "_" & "1", _
                "Belarus" & "_" & "BY" & "_" & "BLR" & "_" & "375", _
                "Belgium" & "_" & "BE" & "_" & "BEL" & "_" & "32", _
                "Belize" & "_" & "BZ" & "_" & "BLZ" & "_" & "501", _
                "Beni" & "_" & "BJ" & "_" & "BE" & "_" & "229", _
                "Bermuda" & "_" & "BM" & "_" & "BMU" & "_" & "1", _
                "Bhuta" & "_" & "BT" & "_" & "BT" & "_" & "975", _
                "Bolivia" & "_" & "BO" & "_" & "BOL" & "_" & "591", _
                "Bosnia and Herzegovina" & "_" & "BA" & "_" & "BIH" & "_" & "387", _
                "Botswana" & "_" & "BW" & "_" & "BWA" & "_" & "267", _
                "Brazil" & "_" & "BR" & "_" & "BRA" & "_" & "55", _
                "British Virgin Islands" & "_" & "VG" & "_" & "VGB" & "_" & "1284", _
                "Brunei" & "_" & "B" & "_" & "BR" & "_" & "673", _
                "Bulgaria" & "_" & "BG" & "_" & "BGR" & "_" & "359", _
                "Burkina Faso" & "_" & "BF" & "_" & "BFA" & "_" & "226", _
                "Burundi" & "_" & "BI" & "_" & "BDI" & "_" & "257", _
                "Cambodia" & "_" & "KH" & "_" & "KHM" & "_" & "855", _
                "Cameroo" & "_" & "CM" & "_" & "CMR" & "_" & "237", _
                "Canada" & "_" & "CA" & "_" & "CA" & "_" & "1", _
                "Cape Verde" & "_" & "CV" & "_" & "CPV" & "_" & "238", _
                "Cayman Islands" & "_" & "KY" & "_" & "CYM" & "_" & "344", _
                "Central African Republic" & "_" & "CF" & "_" & "CAF" & "_" & "236", _
                "Chile" & "_" & "CL" & "_" & "CHL" & "_" & "56", _
                "China" & "_" & "C" & "_" & "CH" & "_" & "86", _
                "Colombia" & "_" & "CO" & "_" & "COL" & "_" & "57", _
                "Comoros" & "_" & "KM" & "_" & "COM" & "_" & "269", _
                "Cook Islands" & "_" & "CK" & "_" & "COK" & "_" & "682", _
                "Costa Rica" & "_" & "CR" & "_" & "CRI" & "_" & "506", _
                "Croatia" & "_" & "HR" & "_" & "HRV" & "_" & "385", _
                "Cuba" & "_" & "CU" & "_" & "CUB" & "_" & "53", _
                "Curacao" & "_" & "CW" & "_" & "CUW" & "_" & "599", _
                "Cyprus" & "_" & "CY" & "_" & "CYP" & "_" & "357", _
                "Czech Republic" & "_" & "CZ" & "_" & "CZE" & "_" & "420", _
                "Democratic Republic of Congo" & "_" & "CD" & "_" & "COD" & "_" & "243", _
                "Denmark" & "_" & "DK" & "_" & "DNK" & "_" & "45", _
                "Djibouti" & "_" & "DJ" & "_" & "DJI" & "_" & "253", _
                "Dominica" & "_" & "DM" & "_" & "DMA" & "_" & "1", _
                "Dominican Republic" & "_" & "DO" & "_" & "DOM" & "_" & "1", _
                "East Timor" & "_" & "TL" & "_" & "TLS" & "_" & "670", _
                "Ecuador" & "_" & "EC" & "_" & "ECU" & "_" & "593", _
                "Egypt" & "_" & "EG" & "_" & "EGY" & "_" & "20", _
                "El Salvador" & "_" & "SV" & "_" & "SLV" & "_" & "503", _
                "Equatorial Guinea" & "_" & "GQ" & "_" & "GNQ" & "_" & "240", _
                "Eritrea" & "_" & "ER" & "_" & "ERI" & "_" & "291", _
                "Estonia" & "_" & "EE" & "_" & "EST" & "_" & "372", _
                "Ethiopia" & "_" & "ET" & "_" & "ETH" & "_" & "251", _
                "Falkland Islands" & "_" & "FK" & "_" & "FLK" & "_" & "500", _
                "Faroe Islands" & "_" & "FO" & "_" & "FRO" & "_" & "298", _
                "Fiji" & "_" & "FJ" & "_" & "FJI" & "_" & "679", _
                "Finland" & "_" & "FI" & "_" & "FI" & "_" & "358", _
                "France" & "_" & "FR" & "_" & "FRA" & "_" & "33", _
                "French Polynesia" & "_" & "PF" & "_" & "PYF" & "_" & "689", _
                "Gabo" & "_" & "GA" & "_" & "GAB" & "_" & "241", _
                "Gambia" & "_" & "GM" & "_" & "GMB" & "_" & "220", _
                "Georgia" & "_" & "GE" & "_" & "GEO" & "_" & "995", _
                "Germany" & "_" & "DE" & "_" & "DEU" & "_" & "49", _
                "Ghana" & "_" & "GH" & "_" & "GHA" & "_" & "233", _
                "Gibraltar" & "_" & "GI" & "_" & "GIB" & "_" & "350", _
                "Greece" & "_" & "GR" & "_" & "GRC" & "_" & "30", _
                "Greenland" & "_" & "GL" & "_" & "GRL" & "_" & "299", _
                "Guadeloupe" & "_" & "GP" & "_" & "GLP" & "_" & "590", _
                "Guam" & "_" & "GU" & "_" & "GUM" & "_" & "1 671", _
                "Guatemala" & "_" & "GT" & "_" & "GTM" & "_" & "502", _
                "Guinea" & "_" & "G" & "_" & "GI" & "_" & "224", _
                "Guinea-Bissau" & "_" & "GW" & "_" & "GNB" & "_" & "245", _
                "Guyana" & "_" & "GY" & "_" & "GUY" & "_" & "592", _
                "Haiti" & "_" & "HT" & "_" & "HTI" & "_" & "509", _
                "Honduras" & "_" & "H" & "_" & "HND" & "_" & "504", _
                "Hong Kong" & "_" & "HK" & "_" & "HKG" & "_" & "852", _
                "Hungary" & "_" & "HU" & "_" & "HU" & "_" & "36", _
                "Iceland" & "_" & "IS" & "_" & "ISL" & "_" & "354", _
                "India" & "_" & "I" & "_" & "IND" & "_" & "91", _
                "Indonesia" & "_" & "ID" & "_" & "ID" & "_" & "62", _
                "Ira" & "_" & "IR" & "_" & "IR" & "_" & "98", _
                "Iraq" & "_" & "IQ" & "_" & "IRQ" & "_" & "964", _
                "Ireland" & "_" & "IE" & "_" & "IRL" & "_" & "353", _
                "Isle of Ma" & "_" & "IM" & "_" & "IM" & "_" & "44", _
                "Israel" & "_" & "IL" & "_" & "ISR" & "_" & "972", _
                "Italy" & "_" & "IT" & "_" & "ITA" & "_" & "39", _
                "Ivory Coast" & "_" & "CI" & "_" & "CIV" & "_" & "225", _
                "Jamaica" & "_" & "JM" & "_" & "JAM" & "_" & "1", _
                "Japa" & "_" & "JP" & "_" & "JP" & "_" & "81", _
                "Jorda" & "_" & "JO" & "_" & "JOR" & "_" & "962", _
                "Kazakhsta" & "_" & "KZ" & "_" & "KAZ" & "_" & "7", _
                "Kenya" & "_" & "KE" & "_" & "KE" & "_" & "254", _
                "Kosovo" & "_" & "XK" & "_" & "XKX" & "_" & "38", _
                "Kuwait" & "_" & "KW" & "_" & "KWT" & "_" & "965", _
                "Kyrgyzsta" & "_" & "KG" & "_" & "KGZ" & "_" & "996", _
                "Laos" & "_" & "LA" & "_" & "LAO" & "_" & "856", _
                "Latvia" & "_" & "LV" & "_" & "LVA" & "_" & "371", _
                "Lebano" & "_" & "LB" & "_" & "LB" & "_" & "961", _
                "Lesotho" & "_" & "LS" & "_" & "LSO" & "_" & "266", _
                "Liberia" & "_" & "LR" & "_" & "LBR" & "_" & "231", _
                "Libya" & "_" & "LY" & "_" & "LBY" & "_" & "218", _
                "Liechtenstei" & "_" & "LI" & "_" & "LIE" & "_" & "423", _
                "Lithuania" & "_" & "LT" & "_" & "LTU" & "_" & "370", _
                "Luxembourg" & "_" & "LU" & "_" & "LUX" & "_" & "352", _
                "Macau" & "_" & "MO" & "_" & "MAC" & "_" & "853", _
                "Macedonia" & "_" & "MK" & "_" & "MKD" & "_" & "389", _
                "Madagascar" & "_" & "MG" & "_" & "MDG" & "_" & "261", _
                "Malawi" & "_" & "MW" & "_" & "MWI" & "_" & "265", _
                "Malaysia" & "_" & "MY" & "_" & "MYS" & "_" & "60", _
                "Maldives" & "_" & "MV" & "_" & "MDV" & "_" & "960", _
                "Mali" & "_" & "ML" & "_" & "MLI" & "_" & "223", _
                "Malta" & "_" & "MT" & "_" & "MLT" & "_" & "356", _
                "Marshall Islands" & "_" & "MH" & "_" & "MHL" & "_" & "692", _
                "Mauritania" & "_" & "MR" & "_" & "MRT" & "_" & "222", _
                "Mauritius" & "_" & "MU" & "_" & "MUS" & "_" & "230", _
                "Mexico" & "_" & "MX" & "_" & "MEX" & "_" & "52", _
                "Micronesia" & "_" & "FM" & "_" & "FSM" & "_" & "691", _
                "Moldova" & "_" & "MD" & "_" & "MDA" & "_" & "373", _
                "Monaco" & "_" & "MC" & "_" & "MCO" & "_" & "377", _
                "Mongolia" & "_" & "M" & "_" & "MNG" & "_" & "976", _
                "Montenegro" & "_" & "ME" & "_" & "MNE" & "_" & "382", _
                "Montserrat" & "_" & "MS" & "_" & "MSR" & "_" & "1 664", _
                "Morocco" & "_" & "MA" & "_" & "MAR" & "_" & "212", _
                "Mozambique" & "_" & "MZ" & "_" & "MOZ" & "_" & "258", _
                "Myanmar [Burma]" & "_" & "MM" & "_" & "MMR" & "_" & "95", _
                "Namibia" & "_" & "NA" & "_" & "NAM" & "_" & "264", _
                "Nauru" & "_" & "NR" & "_" & "NRU" & "_" & "674", _
                "Nepal" & "_" & "NP" & "_" & "NPL" & "_" & "977", _
                "Netherlands" & "_" & "NL" & "_" & "NLD" & "_" & "31", _
                "New Caledonia" & "_" & "NC" & "_" & "NCL" & "_" & "687", _
                "New Zealand" & "_" & "NZ" & "_" & "NZL" & "_" & "64", _
                "Nicaragua" & "_" & "NI" & "_" & "NIC" & "_" & "505", _
                "Niger" & "_" & "NE" & "_" & "NER" & "_" & "227", _
                "Nigeria" & "_" & "NG" & "_" & "NGA" & "_" & "234", _
                "Niue" & "_" & "NU" & "_" & "NIU" & "_" & "683", _
                "Norfolk Island" & "_" & "NF" & "_" & "NFK" & "_" & "672", _
                "North Korea" & "_" & "KP" & "_" & "PRK" & "_" & "850", _
                "Northern Mariana Islands" & "_" & "MP" & "_" & "MNP" & "_" & "1670", _
                "Norway" & "_" & "NO" & "_" & "NOR" & "_" & "47", _
                "Oma" & "_" & "OM" & "_" & "OM" & "_" & "968", _
                "Pakista" & "_" & "PK" & "_" & "PAK" & "_" & "92", _
                "Palau" & "_" & "PW" & "_" & "PLW" & "_" & "680", _
                "Panama" & "_" & "PA" & "_" & "PA" & "_" & "507", _
                "Papua New Guinea" & "_" & "PG" & "_" & "PNG" & "_" & "675", _
                "Paraguay" & "_" & "PY" & "_" & "PRY" & "_" & "595", _
                "Peru" & "_" & "PE" & "_" & "PER" & "_" & "51", _
                "Philippines" & "_" & "PH" & "_" & "PHL" & "_" & "63", _
                "Pitcairn Islands" & "_" & "P" & "_" & "PC" & "_" & "870", _
                "Poland" & "_" & "PL" & "_" & "POL" & "_" & "48", _
                "Portugal" & "_" & "PT" & "_" & "PRT" & "_" & "351", _
                "Puerto Rico" & "_" & "PR" & "_" & "PRI" & "_" & "1", _
                "Qatar" & "_" & "QA" & "_" & "QAT" & "_" & "974", _
                "Republic of the Congo" & "_" & "CG" & "_" & "COG" & "_" & "242", _
                "Reunio" & "_" & "RE" & "_" & "REU" & "_" & "262", _
                "Romania" & "_" & "RO" & "_" & "ROU" & "_" & "40", _
                "Russia" & "_" & "RU" & "_" & "RUS" & "_" & "7", _
                "Rwanda" & "_" & "RW" & "_" & "RWA" & "_" & "250", _
                "Saint-Barthélemy" & "_" & "BL" & "_" & "BLM" & "_" & "590", _
                "Saint Helena" & "_" & "SH" & "_" & "SH" & "_" & "290", _
                "Saint Kitts and Nevis" & "_" & "K" & "_" & "KNA" & "_" & "1", _
                "Saint Lucia" & "_" & "LC" & "_" & "LCA" & "_" & "1", _
                "Saint Marti" & "_" & "MF" & "_" & "MAF" & "_" & "1 599", _
                "Saint Pierre and Miquelo" & "_" & "PM" & "_" & "SPM" & "_" & "508", _
                "Saint Vincent and the Grenadines" & "_" & "VC" & "_" & "VCT" & "_" & "1", _
                "Samoa" & "_" & "WS" & "_" & "WSM" & "_" & "685", _
                "San Marino" & "_" & "SM" & "_" & "SMR" & "_" & "378", _
                "Sao Tome and Principe" & "_" & "ST" & "_" & "STP" & "_" & "239", _
                "Saudi Arabia" & "_" & "SA" & "_" & "SAU" & "_" & "966", _
                "Senegal" & "_" & "S" & "_" & "SE" & "_" & "221", _
                "Serbia" & "_" & "RS" & "_" & "SRB" & "_" & "381", _
                "Seychelles" & "_" & "SC" & "_" & "SYC" & "_" & "248", _
                "Sierra Leone" & "_" & "SL" & "_" & "SLE" & "_" & "232", _
                "Singapore" & "_" & "SG" & "_" & "SGP" & "_" & "65", _
                "Slovakia" & "_" & "SK" & "_" & "SVK" & "_" & "421", _
                "Slovenia" & "_" & "SI" & "_" & "SV" & "_" & "386", _
                "Solomon Islands" & "_" & "SB" & "_" & "SLB" & "_" & "677", _
                "Somalia" & "_" & "SO" & "_" & "SOM" & "_" & "252", _
                "South Africa" & "_" & "ZA" & "_" & "ZAF" & "_" & "27", _
                "South Korea" & "_" & "KR" & "_" & "KOR" & "_" & "82", _
                "South Suda" & "_" & "SS" & "_" & "SSD" & "_" & "211", _
                "Spai" & "_" & "ES" & "_" & "ESP" & "_" & "34", _
                "Sri Lanka" & "_" & "LK" & "_" & "LKA" & "_" & "94", _
                "Suda" & "_" & "SD" & "_" & "SD" & "_" & "249", _
                "Suriname" & "_" & "SR" & "_" & "SUR" & "_" & "597", _
                "Swaziland" & "_" & "SZ" & "_" & "SWZ" & "_" & "268", _
                "Swede" & "_" & "SE" & "_" & "SWE" & "_" & "46", _
                "Switzerland" & "_" & "CH" & "_" & "CHE" & "_" & "41", _
                "Syria" & "_" & "SY" & "_" & "SYR" & "_" & "963", _
                "Taiwa" & "_" & "TW" & "_" & "TW" & "_" & "886", _
                "Tajikista" & "_" & "TJ" & "_" & "TJK" & "_" & "992", _
                "Tanzania" & "_" & "TZ" & "_" & "TZA" & "_" & "255", _
                "Thailand" & "_" & "TH" & "_" & "THA" & "_" & "66", _
                "Togo" & "_" & "TG" & "_" & "TGO" & "_" & "228", _
                "Tokelau" & "_" & "TK" & "_" & "TKL" & "_" & "690", _
                "Trinidad and Tobago" & "_" & "TT" & "_" & "TTO" & "_" & "1", _
                "Tunisia" & "_" & "T" & "_" & "TU" & "_" & "216", _
                "Turkey" & "_" & "TR" & "_" & "TUR" & "_" & "90", _
                "Turkmenista" & "_" & "TM" & "_" & "TKM" & "_" & "993", _
                "Tuvalu" & "_" & "TV" & "_" & "TUV" & "_" & "688", _
                "Uganda" & "_" & "UG" & "_" & "UGA" & "_" & "256", _
                "Ukraine" & "_" & "UA" & "_" & "UKR" & "_" & "380", _
                "United Arab Emirates" & "_" & "AE" & "_" & "ARE" & "_" & "971", _
                "United Kingdom" & "_" & "GB" & "_" & "GBR" & "_" & "44", _
                "United States" & "_" & "US" & "_" & "USA" & "_" & "1", _
                "Uruguay" & "_" & "UY" & "_" & "URY" & "_" & "598", _
                "Uzbekista" & "_" & "UZ" & "_" & "UZB" & "_" & "998", _
                "Vanuatu" & "_" & "VU" & "_" & "VUT" & "_" & "678", _
                "Vatica" & "_" & "VA" & "_" & "VAT" & "_" & "39", _
                "Venezuela" & "_" & "VE" & "_" & "VE" & "_" & "58", _
                "Vietnam" & "_" & "V" & "_" & "VNM" & "_" & "84", _
                "Western Sahara" & "_" & "EH" & "_" & "ESH" & "_" & "212", _
                "Yeme" & "_" & "YE" & "_" & "YEM" & "_" & "967", _
                "Zambia" & "_" & "ZM" & "_" & "ZMB" & "_" & "260", _
                "Zimbabwe" & "_" & "ZW" & "_" & "ZWE" & "_" & "263"]
 
Modifié en dernier par Boulanza le dim. 19 mai 2019 12:48, modifié 3 fois.

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 242
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#2

Message par mdanielm » ven. 17 mai 2019 12:50

Bonjour,
Quelque chose comme ça?
; Recherhe d'un pays $el dans un tableau $t de base 0
; Retourne l'index si trouvé et -1 sinon

func Search($t, $el)
        Local $bYest=false, $i=0, $len = stringlen($el), $fin=stringleft("Zimbabwe", $len)

        Do
                $pays = stringleft($t[$i], $len)
                $bYest = ($pays = $el)
                $i+=1
        until $bYest or $pays = $fin

        Return ($bYest ? $i-1 : -1)
EndFunc
 

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#3

Message par Boulanza » ven. 17 mai 2019 12:55

Bonjour,
Comment associer les deux codes ci-joint:
Lorsque je remplace Local $motChercher= "France" par Local $motChercher= $CountryName ça ne donne rien. Votre aide svp.
Cordialement.
;Code 1
#Include <File.au3>
#Include <Array.au3>
Global $OsType,$CountryName
Global $dir = @ScriptDir & "\Résultat.ini"
                        Global $txt = FileRead($dir)
                $tilt1 = StringRegExp($txt, '\$CountryName =(\V+)', 3)
                ;If IsArray($tilt1) Then
                        $CountryName = $tilt1[0]
                        Msgbox(0,"Name", $CountryName)
;EndIf
;===============================================
;Code 2
Local $pathFile=@ScriptFullPath
;Local $pathFile=@ScriptDir&"\test.txt"
Local $motChercher= "France"
Local $array=Expendables($pathFile,$motChercher)

_ArrayDisplay($array)
Func Expendables($pathFile,$motChercher)
    Local $arrayLine
    _FileReadToArray($pathFile,$arrayLine)
    If @error Then
        MsgBox(0,'',"erreur ouverture du fichier texte")
        Exit
    EndIf
    Local $str=""
    For $i=1 To $arrayLine[0]
        If StringInStr($arrayLine[$i],$motChercher) <> 0 Then
            $str&=$arrayLine[$i]&"[ID:Pandi]"
        EndIf
    Next
        $str=StringTrimRight($str,10)
        Return StringSplit($str,"[ID:Pandi]",3)
EndFunc

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#4

Message par Boulanza » ven. 17 mai 2019 13:08

Bonjour mdanielm,
Merci pour votre réponse.
J'ai testé votre code, il ne réagit pas, pas de retour, pouvez vous revoir votre code.
Cordialement.
Modifié en dernier par Boulanza le ven. 17 mai 2019 13:14, modifié 1 fois.

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 242
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#5

Message par mdanielm » ven. 17 mai 2019 13:14

Exemple d'utilisation:
Global $i =  Search($OsType, "It")
msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#6

Message par Boulanza » ven. 17 mai 2019 13:19

Voici le message d'erreur:
$pays = stringleft($t[$i], $len)
$pays = stringleft($t^ ERROR
; Recherhe d'un pays $el dans un tableau $t de base 0
; Retourne l'index si trouvé et -1 sinon
Global $i =  Search($OsType, "It")
msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")
func Search($t, $el)
; Msgbox(0,"Name","ok")
                Local $bYest=false, $i=0, $len = stringlen($el), $fin=stringleft("Morocco", $len)
        Do
               $pays = stringleft($t[$i], $len)
                Msgbox(0,"Name", $pays)
                                $bYest = ($pays = $el)
                $i+=1
        until $bYest or $pays = $fin

        Return ($bYest ? $i-1 : -1)
EndFunc

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 242
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#7

Message par mdanielm » ven. 17 mai 2019 13:32

J'ai évidemment testé mon code avant de vous l'envoyer!
Merci de ne pas rajouter de code à l'intérieur de la fonction.
Pensez aussi à rajouter le tableau avant l'exemple que je donne.
Cordialement

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#8

Message par Boulanza » ven. 17 mai 2019 14:29

Global $i = Search($OsType, "Morocco")
msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")
Testez svp votre code vous allez remarquer que le résultat représente la liste de A à Z des pays du monde et non un pays précis dans notre cas : Morocco. En plus ce que je cherche c'est de localiser la ligne qui porte le nom du pays recherché pour extraire l’indicatif de ce pays qui se trouve sur une ligne "Morocco" & "_" & "MA" & "_" & "MAR" & "_" & "212", _ dans la liste des pays du monde ci-joint à ma demande.

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 242
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#9

Message par mdanielm » ven. 17 mai 2019 15:40

VOUS NE DEVEZ PAS TOUCHER AU CODE DE LA FONCTION.
Laissez "Zimbabwe" où je l'ai mis! il indique la fin du tableau, pas le pays que vous recherchez.
Vous déclarez un tableau de dimension 1200 et vous n'utilisez que quelques positions, il faut bien que je donne au script le dernier élément à tester.

Le plus simple serait de redimensionner votre tableau convenablement:
Redim $OsType[224]
et la fonction deviendrait:
func Search($t, $el)
        Local $bYest=false, $i=0, $len = stringlen($el)

        While not $bYest and $i<ubound($t)
                $pays = stringleft($t[$i], $len)
                $bYest = ($pays = $el)
                $i+=1
        Wend

        Return ($bYest ? $i-1 : -1)
EndFunc
 

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#10

Message par Boulanza » ven. 17 mai 2019 17:02

Bonjour,
J'avais pas ces informations, je vous prie de m'excusez.
Votre code marche parfaitement. Merci infiniment.
Y a t'il moyen d''associer votre code au code qui me permet de chercher le nom du pays :
Merci pour votre compréhension.
Cordialement.
;Code 1
#Include <File.au3>
#Include <Array.au3>
Global $OsType,$CountryName,$word
Global $dir = @ScriptDir & "\Résultat.ini"

                        Global $txt = FileRead($dir)
                $tilt1 = StringRegExp($txt, '\$CountryName =(\V+)', 3)
                ;If IsArray($tilt1) Then
                        $CountryName = $tilt1[0]
                        Msgbox(0,"Name", $CountryName)
;EndIf
;~ EndFunc
;============================================
;Code 2
Global $i =  Search($OsType, $CountryName)
 msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")
func Search($t, $el)
        Local $bYest=false, $i=0, $len = stringlen($el)

        While not $bYest and $i<ubound($t)
                $pays = stringleft($t[$i], $len)
                $bYest = ($pays = $el)
                $i+=1
        Wend

        Return ($bYest ? $i-1 : -1)
EndFunc

amphase
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 29 août 2016 23:28
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#11

Message par amphase » ven. 17 mai 2019 20:55

Bonsoir,
Deux approches détaillées pouvant être complétées :
#include <Array.au3>
#include <AutoItConstants.au3>
#include <File.au3>


Global $OsType = _GetBigArray() ; dégagé autour des oreilles...

; Option 1 sans tableau - simple

Global $sData = _ArrayToString($OsType) & @CRLF
Global $sCountry = "frAnCe"
Global $sPattern = "(?i)" & $sCountry & ".+?(\d+)"

Global $aResponse = StringRegExp($sData, $sPattern, 1)
If Not IsArray($aResponse) Then Exit MsgBox($MB_TOPMOST, "Y-a une nouille dans le goulash...", "Erreur de saisie probable pour : " & $sCountry)
MsgBox($MB_TOPMOST, "Pays --> Préfixe", StringUpper($sCountry) & " --> " & $aResponse[0])


; Option 2 avec tableau - si la saisie est manuelle (et faite comme un pied), il serait souhaitable d'adjoindre une recherche intuitive ou l'algorithme de Levenshtein (approximation littérale) dans la première colonne ; pour ce faire, je passe le témoin au chameau courreur suivant...

Global $sData = _ArrayToString($OsType, @CRLF) & @CRLF
;~ ; il y a probablement plus simple en générant le tableau 2D d'une traite au lieu du 'meuh' bovin qui suit...
Global $sPattern = "(?m)^[^_\r\n]+" ; motif d'extraction du pays
Global $aCountry = StringRegExp($sData, $sPattern, 3)
If Not IsArray($aCountry) Then Exit MsgBox($MB_TOPMOST, "Y-a une nouille dans le goulash...", "L'extraction des pays à complètement raté !")
Global $sPattern = "(?x).+?(\d+)\r" ; motif d'extraction de l'indicatif
Global $aPrefix = StringRegExp($sData, $sPattern, 3)
If Not IsArray($aPrefix) Then Exit MsgBox($MB_TOPMOST, "Y-a une nouille dans le goulash...", "L'extraction des indicatifs à complètement raté !")
if UBound($aCountry) <> UBound($aPrefix) Then Exit MsgBox($MB_TOPMOST, "Y-a une nouille dans le goulash...", "La colonne 'pays' et la colonne 'indicatifs' sont de longueurs différentes.")
;~ _ArrayDisplay($aCountry)
;~ _ArrayDisplay($aPrefix)

; Construction et sauvegarde du tableau 2D qui pourra servir seul ensuite
Global $aC2P[0][2] ; au début, il y avait le néant et celui-ci avait 2 dimensions...
For $i = 0 to UBound($aCountry) - 1
        _ArrayAdd($aC2P, StringUpper($aCountry[$i]) & "|" & $aPrefix[$i]) ; convertit 'pays' en 'PAYS'
Next
;~ _ArrayDisplay($aC2P)
_FileWriteFromArray(@ScriptDir & "\CountryToPrefix.txt", $aC2P)

; Maintenant que le fichier est sauvegardé, ces quelques lignes suffisent...
 _FileReadToArray(@ScriptDir & "\CountryToPrefix.txt", $aC2P, $FRTA_NOCOUNT, "|")
_ArrayDisplay($aC2P)
Global $sCountry = "frAnCe"
$sCountry = StringUpper($sCountry) ; en majuscules pour pouvoir comparer
$i = _ArraySearch($aC2P, $sCountry) ; retourne l'index
If Not IsInt($i) Then Exit MsgBox($MB_TOPMOST, "Y-a une nouille dans le goulash...", "Grève générale aujourd'hui.")
MsgBox($MB_TOPMOST, "Pays --> Préfixe", $aC2P[$i][0] & " --> " & $aC2P[$i][1])

; Ce code entièrement artisanal et bio est dépourvu de colorants et se conserve naturellement à l'air libre

Func _GetBigArray()
        local $OsType = ["Afghanista" & "_" & "AF" & "_" & "AFG" & "_" & "93", _
                "Albania" & "_" & "AL" & "_" & "ALB" & "_" & "355", _
                "Algeria" & "_" & "DZ" & "_" & "DZA" & "_" & "213", _
                "American Samoa" & "_" & "AS" & "_" & "ASM" & "_" & "1684", _
                "Andorra" & "_" & "AD" & "_" & "AND" & "_" & "376", _
                "Angola" & "_" & "AO" & "_" & "AGO" & "_" & "244", _
                "Anguilla" & "_" & "AI" & "_" & "AIA" & "_" & "1 264", _
                "Antarctica" & "_" & "AQ" & "_" & "ATA" & "_" & "672", _
                "Argentina" & "_" & "AR" & "_" & "ARG" & "_" & "54", _
                "Armenia" & "_" & "AM" & "_" & "ARM" & "_" & "374", _
                "Aruba" & "_" & "AW" & "_" & "ABW" & "_" & "297", _
                "Australia" & "_" & "AU" & "_" & "AUS" & "_" & "61", _
                "Austria" & "_" & "AT" & "_" & "AUT" & "_" & "43", _
                "Azerbaija" & "_" & "AZ" & "_" & "AZE" & "_" & "994", _
                "Bahamas" & "_" & "BS" & "_" & "BHS" & "_" & "1", _
                "Bahrai" & "_" & "BH" & "_" & "BHR" & "_" & "973", _
                "Bangladesh" & "_" & "BD" & "_" & "BGD" & "_" & "880", _
                "Barbados" & "_" & "BB" & "_" & "BRB" & "_" & "1", _
                "Belarus" & "_" & "BY" & "_" & "BLR" & "_" & "375", _
                "Belgium" & "_" & "BE" & "_" & "BEL" & "_" & "32", _
                "Belize" & "_" & "BZ" & "_" & "BLZ" & "_" & "501", _
                "Beni" & "_" & "BJ" & "_" & "BE" & "_" & "229", _
                "Bermuda" & "_" & "BM" & "_" & "BMU" & "_" & "1", _
                "Bhuta" & "_" & "BT" & "_" & "BT" & "_" & "975", _
                "Bolivia" & "_" & "BO" & "_" & "BOL" & "_" & "591", _
                "Bosnia and Herzegovina" & "_" & "BA" & "_" & "BIH" & "_" & "387", _
                "Botswana" & "_" & "BW" & "_" & "BWA" & "_" & "267", _
                "Brazil" & "_" & "BR" & "_" & "BRA" & "_" & "55", _
                "British Virgin Islands" & "_" & "VG" & "_" & "VGB" & "_" & "1284", _
                "Brunei" & "_" & "B" & "_" & "BR" & "_" & "673", _
                "Bulgaria" & "_" & "BG" & "_" & "BGR" & "_" & "359", _
                "Burkina Faso" & "_" & "BF" & "_" & "BFA" & "_" & "226", _
                "Burundi" & "_" & "BI" & "_" & "BDI" & "_" & "257", _
                "Cambodia" & "_" & "KH" & "_" & "KHM" & "_" & "855", _
                "Cameroo" & "_" & "CM" & "_" & "CMR" & "_" & "237", _
                "Canada" & "_" & "CA" & "_" & "CA" & "_" & "1", _
                "Cape Verde" & "_" & "CV" & "_" & "CPV" & "_" & "238", _
                "Cayman Islands" & "_" & "KY" & "_" & "CYM" & "_" & "344", _
                "Central African Republic" & "_" & "CF" & "_" & "CAF" & "_" & "236", _
                "Chile" & "_" & "CL" & "_" & "CHL" & "_" & "56", _
                "China" & "_" & "C" & "_" & "CH" & "_" & "86", _
                "Colombia" & "_" & "CO" & "_" & "COL" & "_" & "57", _
                "Comoros" & "_" & "KM" & "_" & "COM" & "_" & "269", _
                "Cook Islands" & "_" & "CK" & "_" & "COK" & "_" & "682", _
                "Costa Rica" & "_" & "CR" & "_" & "CRI" & "_" & "506", _
                "Croatia" & "_" & "HR" & "_" & "HRV" & "_" & "385", _
                "Cuba" & "_" & "CU" & "_" & "CUB" & "_" & "53", _
                "Curacao" & "_" & "CW" & "_" & "CUW" & "_" & "599", _
                "Cyprus" & "_" & "CY" & "_" & "CYP" & "_" & "357", _
                "Czech Republic" & "_" & "CZ" & "_" & "CZE" & "_" & "420", _
                "Democratic Republic of Congo" & "_" & "CD" & "_" & "COD" & "_" & "243", _
                "Denmark" & "_" & "DK" & "_" & "DNK" & "_" & "45", _
                "Djibouti" & "_" & "DJ" & "_" & "DJI" & "_" & "253", _
                "Dominica" & "_" & "DM" & "_" & "DMA" & "_" & "1", _
                "Dominican Republic" & "_" & "DO" & "_" & "DOM" & "_" & "1", _
                "East Timor" & "_" & "TL" & "_" & "TLS" & "_" & "670", _
                "Ecuador" & "_" & "EC" & "_" & "ECU" & "_" & "593", _
                "Egypt" & "_" & "EG" & "_" & "EGY" & "_" & "20", _
                "El Salvador" & "_" & "SV" & "_" & "SLV" & "_" & "503", _
                "Equatorial Guinea" & "_" & "GQ" & "_" & "GNQ" & "_" & "240", _
                "Eritrea" & "_" & "ER" & "_" & "ERI" & "_" & "291", _
                "Estonia" & "_" & "EE" & "_" & "EST" & "_" & "372", _
                "Ethiopia" & "_" & "ET" & "_" & "ETH" & "_" & "251", _
                "Falkland Islands" & "_" & "FK" & "_" & "FLK" & "_" & "500", _
                "Faroe Islands" & "_" & "FO" & "_" & "FRO" & "_" & "298", _
                "Fiji" & "_" & "FJ" & "_" & "FJI" & "_" & "679", _
                "Finland" & "_" & "FI" & "_" & "FI" & "_" & "358", _
                "France" & "_" & "FR" & "_" & "FRA" & "_" & "33", _
                "French Polynesia" & "_" & "PF" & "_" & "PYF" & "_" & "689", _
                "Gabo" & "_" & "GA" & "_" & "GAB" & "_" & "241", _
                "Gambia" & "_" & "GM" & "_" & "GMB" & "_" & "220", _
                "Georgia" & "_" & "GE" & "_" & "GEO" & "_" & "995", _
                "Germany" & "_" & "DE" & "_" & "DEU" & "_" & "49", _
                "Ghana" & "_" & "GH" & "_" & "GHA" & "_" & "233", _
                "Gibraltar" & "_" & "GI" & "_" & "GIB" & "_" & "350", _
                "Greece" & "_" & "GR" & "_" & "GRC" & "_" & "30", _
                "Greenland" & "_" & "GL" & "_" & "GRL" & "_" & "299", _
                "Guadeloupe" & "_" & "GP" & "_" & "GLP" & "_" & "590", _
                "Guam" & "_" & "GU" & "_" & "GUM" & "_" & "1 671", _
                "Guatemala" & "_" & "GT" & "_" & "GTM" & "_" & "502", _
                "Guinea" & "_" & "G" & "_" & "GI" & "_" & "224", _
                "Guinea-Bissau" & "_" & "GW" & "_" & "GNB" & "_" & "245", _
                "Guyana" & "_" & "GY" & "_" & "GUY" & "_" & "592", _
                "Haiti" & "_" & "HT" & "_" & "HTI" & "_" & "509", _
                "Honduras" & "_" & "H" & "_" & "HND" & "_" & "504", _
                "Hong Kong" & "_" & "HK" & "_" & "HKG" & "_" & "852", _
                "Hungary" & "_" & "HU" & "_" & "HU" & "_" & "36", _
                "Iceland" & "_" & "IS" & "_" & "ISL" & "_" & "354", _
                "India" & "_" & "I" & "_" & "IND" & "_" & "91", _
                "Indonesia" & "_" & "ID" & "_" & "ID" & "_" & "62", _
                "Ira" & "_" & "IR" & "_" & "IR" & "_" & "98", _
                "Iraq" & "_" & "IQ" & "_" & "IRQ" & "_" & "964", _
                "Ireland" & "_" & "IE" & "_" & "IRL" & "_" & "353", _
                "Isle of Ma" & "_" & "IM" & "_" & "IM" & "_" & "44", _
                "Israel" & "_" & "IL" & "_" & "ISR" & "_" & "972", _
                "Italy" & "_" & "IT" & "_" & "ITA" & "_" & "39", _
                "Ivory Coast" & "_" & "CI" & "_" & "CIV" & "_" & "225", _
                "Jamaica" & "_" & "JM" & "_" & "JAM" & "_" & "1", _
                "Japa" & "_" & "JP" & "_" & "JP" & "_" & "81", _
                "Jorda" & "_" & "JO" & "_" & "JOR" & "_" & "962", _
                "Kazakhsta" & "_" & "KZ" & "_" & "KAZ" & "_" & "7", _
                "Kenya" & "_" & "KE" & "_" & "KE" & "_" & "254", _
                "Kosovo" & "_" & "XK" & "_" & "XKX" & "_" & "38", _
                "Kuwait" & "_" & "KW" & "_" & "KWT" & "_" & "965", _
                "Kyrgyzsta" & "_" & "KG" & "_" & "KGZ" & "_" & "996", _
                "Laos" & "_" & "LA" & "_" & "LAO" & "_" & "856", _
                "Latvia" & "_" & "LV" & "_" & "LVA" & "_" & "371", _
                "Lebano" & "_" & "LB" & "_" & "LB" & "_" & "961", _
                "Lesotho" & "_" & "LS" & "_" & "LSO" & "_" & "266", _
                "Liberia" & "_" & "LR" & "_" & "LBR" & "_" & "231", _
                "Libya" & "_" & "LY" & "_" & "LBY" & "_" & "218", _
                "Liechtenstei" & "_" & "LI" & "_" & "LIE" & "_" & "423", _
                "Lithuania" & "_" & "LT" & "_" & "LTU" & "_" & "370", _
                "Luxembourg" & "_" & "LU" & "_" & "LUX" & "_" & "352", _
                "Macau" & "_" & "MO" & "_" & "MAC" & "_" & "853", _
                "Macedonia" & "_" & "MK" & "_" & "MKD" & "_" & "389", _
                "Madagascar" & "_" & "MG" & "_" & "MDG" & "_" & "261", _
                "Malawi" & "_" & "MW" & "_" & "MWI" & "_" & "265", _
                "Malaysia" & "_" & "MY" & "_" & "MYS" & "_" & "60", _
                "Maldives" & "_" & "MV" & "_" & "MDV" & "_" & "960", _
                "Mali" & "_" & "ML" & "_" & "MLI" & "_" & "223", _
                "Malta" & "_" & "MT" & "_" & "MLT" & "_" & "356", _
                "Marshall Islands" & "_" & "MH" & "_" & "MHL" & "_" & "692", _
                "Mauritania" & "_" & "MR" & "_" & "MRT" & "_" & "222", _
                "Mauritius" & "_" & "MU" & "_" & "MUS" & "_" & "230", _
                "Mexico" & "_" & "MX" & "_" & "MEX" & "_" & "52", _
                "Micronesia" & "_" & "FM" & "_" & "FSM" & "_" & "691", _
                "Moldova" & "_" & "MD" & "_" & "MDA" & "_" & "373", _
                "Monaco" & "_" & "MC" & "_" & "MCO" & "_" & "377", _
                "Mongolia" & "_" & "M" & "_" & "MNG" & "_" & "976", _
                "Montenegro" & "_" & "ME" & "_" & "MNE" & "_" & "382", _
                "Montserrat" & "_" & "MS" & "_" & "MSR" & "_" & "1 664", _
                "Morocco" & "_" & "MA" & "_" & "MAR" & "_" & "212", _
                "Mozambique" & "_" & "MZ" & "_" & "MOZ" & "_" & "258", _
                "Myanmar [Burma]" & "_" & "MM" & "_" & "MMR" & "_" & "95", _
                "Namibia" & "_" & "NA" & "_" & "NAM" & "_" & "264", _
                "Nauru" & "_" & "NR" & "_" & "NRU" & "_" & "674", _
                "Nepal" & "_" & "NP" & "_" & "NPL" & "_" & "977", _
                "Netherlands" & "_" & "NL" & "_" & "NLD" & "_" & "31", _
                "New Caledonia" & "_" & "NC" & "_" & "NCL" & "_" & "687", _
                "New Zealand" & "_" & "NZ" & "_" & "NZL" & "_" & "64", _
                "Nicaragua" & "_" & "NI" & "_" & "NIC" & "_" & "505", _
                "Niger" & "_" & "NE" & "_" & "NER" & "_" & "227", _
                "Nigeria" & "_" & "NG" & "_" & "NGA" & "_" & "234", _
                "Niue" & "_" & "NU" & "_" & "NIU" & "_" & "683", _
                "Norfolk Island" & "_" & "NF" & "_" & "NFK" & "_" & "672", _
                "North Korea" & "_" & "KP" & "_" & "PRK" & "_" & "850", _
                "Northern Mariana Islands" & "_" & "MP" & "_" & "MNP" & "_" & "1670", _
                "Norway" & "_" & "NO" & "_" & "NOR" & "_" & "47", _
                "Oma" & "_" & "OM" & "_" & "OM" & "_" & "968", _
                "Pakista" & "_" & "PK" & "_" & "PAK" & "_" & "92", _
                "Palau" & "_" & "PW" & "_" & "PLW" & "_" & "680", _
                "Panama" & "_" & "PA" & "_" & "PA" & "_" & "507", _
                "Papua New Guinea" & "_" & "PG" & "_" & "PNG" & "_" & "675", _
                "Paraguay" & "_" & "PY" & "_" & "PRY" & "_" & "595", _
                "Peru" & "_" & "PE" & "_" & "PER" & "_" & "51", _
                "Philippines" & "_" & "PH" & "_" & "PHL" & "_" & "63", _
                "Pitcairn Islands" & "_" & "P" & "_" & "PC" & "_" & "870", _
                "Poland" & "_" & "PL" & "_" & "POL" & "_" & "48", _
                "Portugal" & "_" & "PT" & "_" & "PRT" & "_" & "351", _
                "Puerto Rico" & "_" & "PR" & "_" & "PRI" & "_" & "1", _
                "Qatar" & "_" & "QA" & "_" & "QAT" & "_" & "974", _
                "Republic of the Congo" & "_" & "CG" & "_" & "COG" & "_" & "242", _
                "Reunio" & "_" & "RE" & "_" & "REU" & "_" & "262", _
                "Romania" & "_" & "RO" & "_" & "ROU" & "_" & "40", _
                "Russia" & "_" & "RU" & "_" & "RUS" & "_" & "7", _
                "Rwanda" & "_" & "RW" & "_" & "RWA" & "_" & "250", _
                "Saint-Barthélemy" & "_" & "BL" & "_" & "BLM" & "_" & "590", _
                "Saint Helena" & "_" & "SH" & "_" & "SH" & "_" & "290", _
                "Saint Kitts and Nevis" & "_" & "K" & "_" & "KNA" & "_" & "1", _
                "Saint Lucia" & "_" & "LC" & "_" & "LCA" & "_" & "1", _
                "Saint Marti" & "_" & "MF" & "_" & "MAF" & "_" & "1 599", _
                "Saint Pierre and Miquelo" & "_" & "PM" & "_" & "SPM" & "_" & "508", _
                "Saint Vincent and the Grenadines" & "_" & "VC" & "_" & "VCT" & "_" & "1", _
                "Samoa" & "_" & "WS" & "_" & "WSM" & "_" & "685", _
                "San Marino" & "_" & "SM" & "_" & "SMR" & "_" & "378", _
                "Sao Tome and Principe" & "_" & "ST" & "_" & "STP" & "_" & "239", _
                "Saudi Arabia" & "_" & "SA" & "_" & "SAU" & "_" & "966", _
                "Senegal" & "_" & "S" & "_" & "SE" & "_" & "221", _
                "Serbia" & "_" & "RS" & "_" & "SRB" & "_" & "381", _
                "Seychelles" & "_" & "SC" & "_" & "SYC" & "_" & "248", _
                "Sierra Leone" & "_" & "SL" & "_" & "SLE" & "_" & "232", _
                "Singapore" & "_" & "SG" & "_" & "SGP" & "_" & "65", _
                "Slovakia" & "_" & "SK" & "_" & "SVK" & "_" & "421", _
                "Slovenia" & "_" & "SI" & "_" & "SV" & "_" & "386", _
                "Solomon Islands" & "_" & "SB" & "_" & "SLB" & "_" & "677", _
                "Somalia" & "_" & "SO" & "_" & "SOM" & "_" & "252", _
                "South Africa" & "_" & "ZA" & "_" & "ZAF" & "_" & "27", _
                "South Korea" & "_" & "KR" & "_" & "KOR" & "_" & "82", _
                "South Suda" & "_" & "SS" & "_" & "SSD" & "_" & "211", _
                "Spai" & "_" & "ES" & "_" & "ESP" & "_" & "34", _
                "Sri Lanka" & "_" & "LK" & "_" & "LKA" & "_" & "94", _
                "Suda" & "_" & "SD" & "_" & "SD" & "_" & "249", _
                "Suriname" & "_" & "SR" & "_" & "SUR" & "_" & "597", _
                "Swaziland" & "_" & "SZ" & "_" & "SWZ" & "_" & "268", _
                "Swede" & "_" & "SE" & "_" & "SWE" & "_" & "46", _
                "Switzerland" & "_" & "CH" & "_" & "CHE" & "_" & "41", _
                "Syria" & "_" & "SY" & "_" & "SYR" & "_" & "963", _
                "Taiwa" & "_" & "TW" & "_" & "TW" & "_" & "886", _
                "Tajikista" & "_" & "TJ" & "_" & "TJK" & "_" & "992", _
                "Tanzania" & "_" & "TZ" & "_" & "TZA" & "_" & "255", _
                "Thailand" & "_" & "TH" & "_" & "THA" & "_" & "66", _
                "Togo" & "_" & "TG" & "_" & "TGO" & "_" & "228", _
                "Tokelau" & "_" & "TK" & "_" & "TKL" & "_" & "690", _
                "Trinidad and Tobago" & "_" & "TT" & "_" & "TTO" & "_" & "1", _
                "Tunisia" & "_" & "T" & "_" & "TU" & "_" & "216", _
                "Turkey" & "_" & "TR" & "_" & "TUR" & "_" & "90", _
                "Turkmenista" & "_" & "TM" & "_" & "TKM" & "_" & "993", _
                "Tuvalu" & "_" & "TV" & "_" & "TUV" & "_" & "688", _
                "Uganda" & "_" & "UG" & "_" & "UGA" & "_" & "256", _
                "Ukraine" & "_" & "UA" & "_" & "UKR" & "_" & "380", _
                "United Arab Emirates" & "_" & "AE" & "_" & "ARE" & "_" & "971", _
                "United Kingdom" & "_" & "GB" & "_" & "GBR" & "_" & "44", _
                "United States" & "_" & "US" & "_" & "USA" & "_" & "1", _
                "Uruguay" & "_" & "UY" & "_" & "URY" & "_" & "598", _
                "Uzbekista" & "_" & "UZ" & "_" & "UZB" & "_" & "998", _
                "Vanuatu" & "_" & "VU" & "_" & "VUT" & "_" & "678", _
                "Vatica" & "_" & "VA" & "_" & "VAT" & "_" & "39", _
                "Venezuela" & "_" & "VE" & "_" & "VE" & "_" & "58", _
                "Vietnam" & "_" & "V" & "_" & "VNM" & "_" & "84", _
                "Western Sahara" & "_" & "EH" & "_" & "ESH" & "_" & "212", _
                "Yeme" & "_" & "YE" & "_" & "YEM" & "_" & "967", _
                "Zambia" & "_" & "ZM" & "_" & "ZMB" & "_" & "260", _
                "Zimbabwe" & "_" & "ZW" & "_" & "ZWE" & "_" & "263"]
        Return $OsType
EndFunc

[/Codebox]
Edit 2 orthographe et 1 code ligne 42 (_FileReadToArray)
Modifié en dernier par amphase le ven. 17 mai 2019 21:55, modifié 1 fois.

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#12

Message par Boulanza » ven. 17 mai 2019 21:48

Bonsoir tout le monde,
Pour amphase, merci pour votre aide et de votre suggestion.
Votre code marche aussi bien. Merci
Ce que je cherche pour finaliser tous ces codes, c'est d''associer les deux codes ci-dessous car la recherche du pays se fait automatiquement par le code1 le code 2 de mdanielm est excellent par son optimisation, simple est rapide. Donc je cherche toujours une solution à mon souci.
Merci pour votre compréhension.
Cordialement.
;Code 1
#Include <File.au3>
#Include <Array.au3>
Global $OsType,$CountryName,$word
Global $dir = @ScriptDir & "\Résultat.ini"

                        Global $txt = FileRead($dir)
                $tilt1 = StringRegExp($txt, '\$CountryName =(\V+)', 3)
                ;If IsArray($tilt1) Then
                        $CountryName = $tilt1[0]
                        Msgbox(0,"Name", $CountryName)
;EndIf
;~ EndFunc
;============================================
;Code 2
Global $i =  Search($OsType, $CountryName)
 msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")
func Search($t, $el)
        Local $bYest=false, $i=0, $len = stringlen($el)

        While not $bYest and $i<ubound($t)
                $pays = stringleft($t[$i], $len)
                $bYest = ($pays = $el)
                $i+=1
        Wend

        Return ($bYest ? $i-1 : -1)
EndFunc

amphase
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 29 août 2016 23:28
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#13

Message par amphase » sam. 18 mai 2019 09:14

Bonjour,

La nuit n'ayant pas porté conseil, comme chez le notaire, il va falloir tirer les choses au clair :
Pourquoi dimensionner une variable tableau alors que lorsqu'une valeur lui est affectée, elle s'auto-dimensionne pile à la bonne taille toute seule, comme une grande ?
C'est quoi ce fichier de mauvaise vie 'Résultats.ini' qui porte une extension 'ini' et est lu comme un fichier text standard ? D'où sort-il ?
L'expression régulière ne semble pas d'origine terrestre.
La finalité est-elle d'afficher l'indicatif ou la ligne entière ?

Pour poursuivre, j'aimerais voir, toucher, sentir, de face, de dos et de profil un échantillon significatif (2-3 lignes, pas une page) des données d'entrée BRUTES (contenues dans le fichier 'ini' louche) ainsi que de sortie (ligne ou indicatif seul).

Avec ça, on va pouvoir commencer à s'occuper concrètement du traitement...

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5885
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#14

Message par mikell » sam. 18 mai 2019 09:16

A partir du non d'un pays (Par exemple le pays: la France), je cherche un scripte qui me permet de localiser la ligne qui porte le nom du pays recherché pour extraire l’indicatif de ce pays (33)
POURQUOI ce sujet contient déjà 13 messages pour un problème aussi simple ? vous le faites exprès ?

Local $OsType = _array(), $ligne = -1, $tel = -1, $pays = "france"
For $i = 0 to UBound($OsType)-1
   If StringLeft($OsType[$i], StringLen($pays)) = $pays Then
         $ligne = $i
         $tel = StringSplit($OsType[$i], "_")[4]
         ; $tel = StringRegExpReplace($OsType[$i], '.*?([\d\h]+)$', "$1")
         Exitloop
   EndIf
Next
Msgbox(0, ($ligne = -1) ? "erreur" : "résultat", "pays = " & $pays &@crlf& "ligne = " & $ligne &@crlf& "tel = " & $tel)

;================

Func _array()
Dim $OsType[224] = ["Afghanista" & "_" & "AF" & "_" & "AFG" & "_" & "93", _
                "Albania" & "_" & "AL" & "_" & "ALB" & "_" & "355", _
                "Algeria" & "_" & "DZ" & "_" & "DZA" & "_" & "213", _
                "American Samoa" & "_" & "AS" & "_" & "ASM" & "_" & "1684", _
                "Andorra" & "_" & "AD" & "_" & "AND" & "_" & "376", _
                "Angola" & "_" & "AO" & "_" & "AGO" & "_" & "244", _
                "Anguilla" & "_" & "AI" & "_" & "AIA" & "_" & "1 264", _
                "Antarctica" & "_" & "AQ" & "_" & "ATA" & "_" & "672", _
                "Argentina" & "_" & "AR" & "_" & "ARG" & "_" & "54", _
                "Armenia" & "_" & "AM" & "_" & "ARM" & "_" & "374", _
                "Aruba" & "_" & "AW" & "_" & "ABW" & "_" & "297", _
                "Australia" & "_" & "AU" & "_" & "AUS" & "_" & "61", _
                "Austria" & "_" & "AT" & "_" & "AUT" & "_" & "43", _
                "Azerbaija" & "_" & "AZ" & "_" & "AZE" & "_" & "994", _
                "Bahamas" & "_" & "BS" & "_" & "BHS" & "_" & "1", _
                "Bahrai" & "_" & "BH" & "_" & "BHR" & "_" & "973", _
                "Bangladesh" & "_" & "BD" & "_" & "BGD" & "_" & "880", _
                "Barbados" & "_" & "BB" & "_" & "BRB" & "_" & "1", _
                "Belarus" & "_" & "BY" & "_" & "BLR" & "_" & "375", _
                "Belgium" & "_" & "BE" & "_" & "BEL" & "_" & "32", _
                "Belize" & "_" & "BZ" & "_" & "BLZ" & "_" & "501", _
                "Beni" & "_" & "BJ" & "_" & "BE" & "_" & "229", _
                "Bermuda" & "_" & "BM" & "_" & "BMU" & "_" & "1", _
                "Bhuta" & "_" & "BT" & "_" & "BT" & "_" & "975", _
                "Bolivia" & "_" & "BO" & "_" & "BOL" & "_" & "591", _
                "Bosnia and Herzegovina" & "_" & "BA" & "_" & "BIH" & "_" & "387", _
                "Botswana" & "_" & "BW" & "_" & "BWA" & "_" & "267", _
                "Brazil" & "_" & "BR" & "_" & "BRA" & "_" & "55", _
                "British Virgin Islands" & "_" & "VG" & "_" & "VGB" & "_" & "1284", _
                "Brunei" & "_" & "B" & "_" & "BR" & "_" & "673", _
                "Bulgaria" & "_" & "BG" & "_" & "BGR" & "_" & "359", _
                "Burkina Faso" & "_" & "BF" & "_" & "BFA" & "_" & "226", _
                "Burundi" & "_" & "BI" & "_" & "BDI" & "_" & "257", _
                "Cambodia" & "_" & "KH" & "_" & "KHM" & "_" & "855", _
                "Cameroo" & "_" & "CM" & "_" & "CMR" & "_" & "237", _
                "Canada" & "_" & "CA" & "_" & "CA" & "_" & "1", _
                "Cape Verde" & "_" & "CV" & "_" & "CPV" & "_" & "238", _
                "Cayman Islands" & "_" & "KY" & "_" & "CYM" & "_" & "344", _
                "Central African Republic" & "_" & "CF" & "_" & "CAF" & "_" & "236", _
                "Chile" & "_" & "CL" & "_" & "CHL" & "_" & "56", _
                "China" & "_" & "C" & "_" & "CH" & "_" & "86", _
                "Colombia" & "_" & "CO" & "_" & "COL" & "_" & "57", _
                "Comoros" & "_" & "KM" & "_" & "COM" & "_" & "269", _
                "Cook Islands" & "_" & "CK" & "_" & "COK" & "_" & "682", _
                "Costa Rica" & "_" & "CR" & "_" & "CRI" & "_" & "506", _
                "Croatia" & "_" & "HR" & "_" & "HRV" & "_" & "385", _
                "Cuba" & "_" & "CU" & "_" & "CUB" & "_" & "53", _
                "Curacao" & "_" & "CW" & "_" & "CUW" & "_" & "599", _
                "Cyprus" & "_" & "CY" & "_" & "CYP" & "_" & "357", _
                "Czech Republic" & "_" & "CZ" & "_" & "CZE" & "_" & "420", _
                "Democratic Republic of Congo" & "_" & "CD" & "_" & "COD" & "_" & "243", _
                "Denmark" & "_" & "DK" & "_" & "DNK" & "_" & "45", _
                "Djibouti" & "_" & "DJ" & "_" & "DJI" & "_" & "253", _
                "Dominica" & "_" & "DM" & "_" & "DMA" & "_" & "1", _
                "Dominican Republic" & "_" & "DO" & "_" & "DOM" & "_" & "1", _
                "East Timor" & "_" & "TL" & "_" & "TLS" & "_" & "670", _
                "Ecuador" & "_" & "EC" & "_" & "ECU" & "_" & "593", _
                "Egypt" & "_" & "EG" & "_" & "EGY" & "_" & "20", _
                "El Salvador" & "_" & "SV" & "_" & "SLV" & "_" & "503", _
                "Equatorial Guinea" & "_" & "GQ" & "_" & "GNQ" & "_" & "240", _
                "Eritrea" & "_" & "ER" & "_" & "ERI" & "_" & "291", _
                "Estonia" & "_" & "EE" & "_" & "EST" & "_" & "372", _
                "Ethiopia" & "_" & "ET" & "_" & "ETH" & "_" & "251", _
                "Falkland Islands" & "_" & "FK" & "_" & "FLK" & "_" & "500", _
                "Faroe Islands" & "_" & "FO" & "_" & "FRO" & "_" & "298", _
                "Fiji" & "_" & "FJ" & "_" & "FJI" & "_" & "679", _
                "Finland" & "_" & "FI" & "_" & "FI" & "_" & "358", _
                "France" & "_" & "FR" & "_" & "FRA" & "_" & "33", _
                "French Polynesia" & "_" & "PF" & "_" & "PYF" & "_" & "689", _
                "Gabo" & "_" & "GA" & "_" & "GAB" & "_" & "241", _
                "Gambia" & "_" & "GM" & "_" & "GMB" & "_" & "220", _
                "Georgia" & "_" & "GE" & "_" & "GEO" & "_" & "995", _
                "Germany" & "_" & "DE" & "_" & "DEU" & "_" & "49", _
                "Ghana" & "_" & "GH" & "_" & "GHA" & "_" & "233", _
                "Gibraltar" & "_" & "GI" & "_" & "GIB" & "_" & "350", _
                "Greece" & "_" & "GR" & "_" & "GRC" & "_" & "30", _
                "Greenland" & "_" & "GL" & "_" & "GRL" & "_" & "299", _
                "Guadeloupe" & "_" & "GP" & "_" & "GLP" & "_" & "590", _
                "Guam" & "_" & "GU" & "_" & "GUM" & "_" & "1 671", _
                "Guatemala" & "_" & "GT" & "_" & "GTM" & "_" & "502", _
                "Guinea" & "_" & "G" & "_" & "GI" & "_" & "224", _
                "Guinea-Bissau" & "_" & "GW" & "_" & "GNB" & "_" & "245", _
                "Guyana" & "_" & "GY" & "_" & "GUY" & "_" & "592", _
                "Haiti" & "_" & "HT" & "_" & "HTI" & "_" & "509", _
                "Honduras" & "_" & "H" & "_" & "HND" & "_" & "504", _
                "Hong Kong" & "_" & "HK" & "_" & "HKG" & "_" & "852", _
                "Hungary" & "_" & "HU" & "_" & "HU" & "_" & "36", _
                "Iceland" & "_" & "IS" & "_" & "ISL" & "_" & "354", _
                "India" & "_" & "I" & "_" & "IND" & "_" & "91", _
                "Indonesia" & "_" & "ID" & "_" & "ID" & "_" & "62", _
                "Ira" & "_" & "IR" & "_" & "IR" & "_" & "98", _
                "Iraq" & "_" & "IQ" & "_" & "IRQ" & "_" & "964", _
                "Ireland" & "_" & "IE" & "_" & "IRL" & "_" & "353", _
                "Isle of Ma" & "_" & "IM" & "_" & "IM" & "_" & "44", _
                "Israel" & "_" & "IL" & "_" & "ISR" & "_" & "972", _
                "Italy" & "_" & "IT" & "_" & "ITA" & "_" & "39", _
                "Ivory Coast" & "_" & "CI" & "_" & "CIV" & "_" & "225", _
                "Jamaica" & "_" & "JM" & "_" & "JAM" & "_" & "1", _
                "Japa" & "_" & "JP" & "_" & "JP" & "_" & "81", _
                "Jorda" & "_" & "JO" & "_" & "JOR" & "_" & "962", _
                "Kazakhsta" & "_" & "KZ" & "_" & "KAZ" & "_" & "7", _
                "Kenya" & "_" & "KE" & "_" & "KE" & "_" & "254", _
                "Kosovo" & "_" & "XK" & "_" & "XKX" & "_" & "38", _
                "Kuwait" & "_" & "KW" & "_" & "KWT" & "_" & "965", _
                "Kyrgyzsta" & "_" & "KG" & "_" & "KGZ" & "_" & "996", _
                "Laos" & "_" & "LA" & "_" & "LAO" & "_" & "856", _
                "Latvia" & "_" & "LV" & "_" & "LVA" & "_" & "371", _
                "Lebano" & "_" & "LB" & "_" & "LB" & "_" & "961", _
                "Lesotho" & "_" & "LS" & "_" & "LSO" & "_" & "266", _
                "Liberia" & "_" & "LR" & "_" & "LBR" & "_" & "231", _
                "Libya" & "_" & "LY" & "_" & "LBY" & "_" & "218", _
                "Liechtenstei" & "_" & "LI" & "_" & "LIE" & "_" & "423", _
                "Lithuania" & "_" & "LT" & "_" & "LTU" & "_" & "370", _
                "Luxembourg" & "_" & "LU" & "_" & "LUX" & "_" & "352", _
                "Macau" & "_" & "MO" & "_" & "MAC" & "_" & "853", _
                "Macedonia" & "_" & "MK" & "_" & "MKD" & "_" & "389", _
                "Madagascar" & "_" & "MG" & "_" & "MDG" & "_" & "261", _
                "Malawi" & "_" & "MW" & "_" & "MWI" & "_" & "265", _
                "Malaysia" & "_" & "MY" & "_" & "MYS" & "_" & "60", _
                "Maldives" & "_" & "MV" & "_" & "MDV" & "_" & "960", _
                "Mali" & "_" & "ML" & "_" & "MLI" & "_" & "223", _
                "Malta" & "_" & "MT" & "_" & "MLT" & "_" & "356", _
                "Marshall Islands" & "_" & "MH" & "_" & "MHL" & "_" & "692", _
                "Mauritania" & "_" & "MR" & "_" & "MRT" & "_" & "222", _
                "Mauritius" & "_" & "MU" & "_" & "MUS" & "_" & "230", _
                "Mexico" & "_" & "MX" & "_" & "MEX" & "_" & "52", _
                "Micronesia" & "_" & "FM" & "_" & "FSM" & "_" & "691", _
                "Moldova" & "_" & "MD" & "_" & "MDA" & "_" & "373", _
                "Monaco" & "_" & "MC" & "_" & "MCO" & "_" & "377", _
                "Mongolia" & "_" & "M" & "_" & "MNG" & "_" & "976", _
                "Montenegro" & "_" & "ME" & "_" & "MNE" & "_" & "382", _
                "Montserrat" & "_" & "MS" & "_" & "MSR" & "_" & "1 664", _
                "Morocco" & "_" & "MA" & "_" & "MAR" & "_" & "212", _
                "Mozambique" & "_" & "MZ" & "_" & "MOZ" & "_" & "258", _
                "Myanmar [Burma]" & "_" & "MM" & "_" & "MMR" & "_" & "95", _
                "Namibia" & "_" & "NA" & "_" & "NAM" & "_" & "264", _
                "Nauru" & "_" & "NR" & "_" & "NRU" & "_" & "674", _
                "Nepal" & "_" & "NP" & "_" & "NPL" & "_" & "977", _
                "Netherlands" & "_" & "NL" & "_" & "NLD" & "_" & "31", _
                "New Caledonia" & "_" & "NC" & "_" & "NCL" & "_" & "687", _
                "New Zealand" & "_" & "NZ" & "_" & "NZL" & "_" & "64", _
                "Nicaragua" & "_" & "NI" & "_" & "NIC" & "_" & "505", _
                "Niger" & "_" & "NE" & "_" & "NER" & "_" & "227", _
                "Nigeria" & "_" & "NG" & "_" & "NGA" & "_" & "234", _
                "Niue" & "_" & "NU" & "_" & "NIU" & "_" & "683", _
                "Norfolk Island" & "_" & "NF" & "_" & "NFK" & "_" & "672", _
                "North Korea" & "_" & "KP" & "_" & "PRK" & "_" & "850", _
                "Northern Mariana Islands" & "_" & "MP" & "_" & "MNP" & "_" & "1670", _
                "Norway" & "_" & "NO" & "_" & "NOR" & "_" & "47", _
                "Oma" & "_" & "OM" & "_" & "OM" & "_" & "968", _
                "Pakista" & "_" & "PK" & "_" & "PAK" & "_" & "92", _
                "Palau" & "_" & "PW" & "_" & "PLW" & "_" & "680", _
                "Panama" & "_" & "PA" & "_" & "PA" & "_" & "507", _
                "Papua New Guinea" & "_" & "PG" & "_" & "PNG" & "_" & "675", _
                "Paraguay" & "_" & "PY" & "_" & "PRY" & "_" & "595", _
                "Peru" & "_" & "PE" & "_" & "PER" & "_" & "51", _
                "Philippines" & "_" & "PH" & "_" & "PHL" & "_" & "63", _
                "Pitcairn Islands" & "_" & "P" & "_" & "PC" & "_" & "870", _
                "Poland" & "_" & "PL" & "_" & "POL" & "_" & "48", _
                "Portugal" & "_" & "PT" & "_" & "PRT" & "_" & "351", _
                "Puerto Rico" & "_" & "PR" & "_" & "PRI" & "_" & "1", _
                "Qatar" & "_" & "QA" & "_" & "QAT" & "_" & "974", _
                "Republic of the Congo" & "_" & "CG" & "_" & "COG" & "_" & "242", _
                "Reunio" & "_" & "RE" & "_" & "REU" & "_" & "262", _
                "Romania" & "_" & "RO" & "_" & "ROU" & "_" & "40", _
                "Russia" & "_" & "RU" & "_" & "RUS" & "_" & "7", _
                "Rwanda" & "_" & "RW" & "_" & "RWA" & "_" & "250", _
                "Saint-Barthélemy" & "_" & "BL" & "_" & "BLM" & "_" & "590", _
                "Saint Helena" & "_" & "SH" & "_" & "SH" & "_" & "290", _
                "Saint Kitts and Nevis" & "_" & "K" & "_" & "KNA" & "_" & "1", _
                "Saint Lucia" & "_" & "LC" & "_" & "LCA" & "_" & "1", _
                "Saint Marti" & "_" & "MF" & "_" & "MAF" & "_" & "1 599", _
                "Saint Pierre and Miquelo" & "_" & "PM" & "_" & "SPM" & "_" & "508", _
                "Saint Vincent and the Grenadines" & "_" & "VC" & "_" & "VCT" & "_" & "1", _
                "Samoa" & "_" & "WS" & "_" & "WSM" & "_" & "685", _
                "San Marino" & "_" & "SM" & "_" & "SMR" & "_" & "378", _
                "Sao Tome and Principe" & "_" & "ST" & "_" & "STP" & "_" & "239", _
                "Saudi Arabia" & "_" & "SA" & "_" & "SAU" & "_" & "966", _
                "Senegal" & "_" & "S" & "_" & "SE" & "_" & "221", _
                "Serbia" & "_" & "RS" & "_" & "SRB" & "_" & "381", _
                "Seychelles" & "_" & "SC" & "_" & "SYC" & "_" & "248", _
                "Sierra Leone" & "_" & "SL" & "_" & "SLE" & "_" & "232", _
                "Singapore" & "_" & "SG" & "_" & "SGP" & "_" & "65", _
                "Slovakia" & "_" & "SK" & "_" & "SVK" & "_" & "421", _
                "Slovenia" & "_" & "SI" & "_" & "SV" & "_" & "386", _
                "Solomon Islands" & "_" & "SB" & "_" & "SLB" & "_" & "677", _
                "Somalia" & "_" & "SO" & "_" & "SOM" & "_" & "252", _
                "South Africa" & "_" & "ZA" & "_" & "ZAF" & "_" & "27", _
                "South Korea" & "_" & "KR" & "_" & "KOR" & "_" & "82", _
                "South Suda" & "_" & "SS" & "_" & "SSD" & "_" & "211", _
                "Spai" & "_" & "ES" & "_" & "ESP" & "_" & "34", _
                "Sri Lanka" & "_" & "LK" & "_" & "LKA" & "_" & "94", _
                "Suda" & "_" & "SD" & "_" & "SD" & "_" & "249", _
                "Suriname" & "_" & "SR" & "_" & "SUR" & "_" & "597", _
                "Swaziland" & "_" & "SZ" & "_" & "SWZ" & "_" & "268", _
                "Swede" & "_" & "SE" & "_" & "SWE" & "_" & "46", _
                "Switzerland" & "_" & "CH" & "_" & "CHE" & "_" & "41", _
                "Syria" & "_" & "SY" & "_" & "SYR" & "_" & "963", _
                "Taiwa" & "_" & "TW" & "_" & "TW" & "_" & "886", _
                "Tajikista" & "_" & "TJ" & "_" & "TJK" & "_" & "992", _
                "Tanzania" & "_" & "TZ" & "_" & "TZA" & "_" & "255", _
                "Thailand" & "_" & "TH" & "_" & "THA" & "_" & "66", _
                "Togo" & "_" & "TG" & "_" & "TGO" & "_" & "228", _
                "Tokelau" & "_" & "TK" & "_" & "TKL" & "_" & "690", _
                "Trinidad and Tobago" & "_" & "TT" & "_" & "TTO" & "_" & "1", _
                "Tunisia" & "_" & "T" & "_" & "TU" & "_" & "216", _
                "Turkey" & "_" & "TR" & "_" & "TUR" & "_" & "90", _
                "Turkmenista" & "_" & "TM" & "_" & "TKM" & "_" & "993", _
                "Tuvalu" & "_" & "TV" & "_" & "TUV" & "_" & "688", _
                "Uganda" & "_" & "UG" & "_" & "UGA" & "_" & "256", _
                "Ukraine" & "_" & "UA" & "_" & "UKR" & "_" & "380", _
                "United Arab Emirates" & "_" & "AE" & "_" & "ARE" & "_" & "971", _
                "United Kingdom" & "_" & "GB" & "_" & "GBR" & "_" & "44", _
                "United States" & "_" & "US" & "_" & "USA" & "_" & "1", _
                "Uruguay" & "_" & "UY" & "_" & "URY" & "_" & "598", _
                "Uzbekista" & "_" & "UZ" & "_" & "UZB" & "_" & "998", _
                "Vanuatu" & "_" & "VU" & "_" & "VUT" & "_" & "678", _
                "Vatica" & "_" & "VA" & "_" & "VAT" & "_" & "39", _
                "Venezuela" & "_" & "VE" & "_" & "VE" & "_" & "58", _
                "Vietnam" & "_" & "V" & "_" & "VNM" & "_" & "84", _
                "Western Sahara" & "_" & "EH" & "_" & "ESH" & "_" & "212", _
                "Yeme" & "_" & "YE" & "_" & "YEM" & "_" & "967", _
                "Zambia" & "_" & "ZM" & "_" & "ZMB" & "_" & "260", _
                "Zimbabwe" & "_" & "ZW" & "_" & "ZWE" & "_" & "263"]
       Return $OsType
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#15

Message par Boulanza » sam. 18 mai 2019 12:49

Bonjour tout le monde,
Cher mikell, vous avez raison : 13 messages pour un problème aussi simple. (pas pour moi)
La question :
A partir du non d'un pays (Par exemple le pays: la France), je cherche un scripte qui me permet de localiser la ligne qui porte le nom du pays recherché pour extraire l’indicatif de ce pays (33)
a été résolus en s’appuyant sur l' exemple de "Tlem", voir ma réponse numéro 3. Pour finaliser ma demande j'ai posé une nouvelle question :
Comment associer les deux codes ci-joint:
Lorsque je remplace Local $motChercher= "France" par Local $motChercher= $CountryName ça ne donne rien. Votre aide svp.
, et depuis lors je ne fait que répéter la dite demande dans toutes mes réponses:
Ce que je cherche pour finaliser tous ces codes, c'est d''associer les deux codes ci-dessous car la recherche du pays se fait automatiquement par le code1 le code 2 de "mdanielm" est excellent par son optimisation, simple est rapide. Donc je cherche toujours une solution à mon souci.
Merci pour votre compréhension.
.
Je pense que suite à ces explications, vous comprenez que je ne le fais pas exprès, et à mon age. Je ne cherche que la solution à mon problème.

Cher mikell, votre code marche très bien il sera une bonne solution pour mon cas si vous pouvez le modifier en l’associant au code 1, c.à.d:
remplacer $pays = "france" par $pays = $CountryName. Merci pour votre aide.
Cordialement.
;Code 1
#Include <File.au3>
#Include <Array.au3>
Global $OsType,$CountryName,$word
Global $dir = @ScriptDir & "\Résultat.ini"

                        Global $txt = FileRead($dir)
                $tilt1 = StringRegExp($txt, '\$CountryName =(\V+)', 3)
                ;If IsArray($tilt1) Then
                        $CountryName = $tilt1[0]
                        Msgbox(0,"Name", $CountryName)
;EndIf
;~ EndFunc
;============================================
;Code 2
Global $i =  Search($OsType, $CountryName)
 msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")
func Search($t, $el)
        Local $bYest=false, $i=0, $len = stringlen($el)

        While not $bYest and $i<ubound($t)
                $pays = stringleft($t[$i], $len)
                $bYest = ($pays = $el)
                $i+=1
        Wend

        Return ($bYest ? $i-1 : -1)
EndFunc

amphase
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 29 août 2016 23:28
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#16

Message par amphase » sam. 18 mai 2019 14:37

En ce qui concerne le code 1, merci de répondre aux questions.
Sinon, en consultant 'https://fr.wikipedia.org/wiki/E.164', j'ai pu voir que pour certains pays l'indicatif était lui-même préfixé. Pour 'Anguilla_AI_AIA_1 264', par exemple, l'indicatif est '1-264' et non '264'. Mon code est donc faux. Indiscutablement c'est celui de Mikell qu'il faut retenir.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5885
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#17

Message par mikell » sam. 18 mai 2019 16:14

Comme amphase l'a relevé, on ne sait pas à quoi ressemble le contenu du fichier "Résultat.ini" ni la valeur de la variable $CountryName. Donc pas moyen de répondre
Mais si par le plus grand des hasards cette variable retournait le nom d'un pays, il suffirait évidemment de remplacer dans mon code "$pays" par "$CountryName"
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#18

Message par Boulanza » sam. 18 mai 2019 16:53

Pour amphase:
C'est quoi ce fichier de mauvaise vie 'Résultats.ini' qui porte une extension 'ini' et est lu comme un fichier text standard ? D'où sort-il ?
C'est un autre scripte qui tourne parfaitement et qui inscrit des informations voulues dans un dossier .ini, parmi ces informations le nom du pays. Le client doit remplir un formulaire, parmi autre son numéro de téléphone, pour lui faciliter la tâche j'ajoute l'indexe téléphonique dans une GUICtrlCreateInput automatiquement.
Pour mikell:
Mais si par le plus grand des hasards cette variable retournait le nom d'un pays, il suffirait évidemment de remplacer dans mon code "$pays" par "$CountryName"

Domage, ça ne marche pas si je remplace dans votre code "$pays" par "$CountryName"
erreur
pays = Morocco
ligne = -1
tel = -1
Cordialement.

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5885
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#19

Message par mikell » sam. 18 mai 2019 20:15

Si dans mon code précédent je donne à $pays la valeur "Morocco" ça marche très bien. Mais j'imagine que vous n'avez même pas pris la peine de faire ce test, qui montre que le problème se situe ailleurs, très probablement dans votre "code 1"
Vous ne voulez toujours pas nous donner un aperçu du contenu du fichier ini, alors débrouillez-vous
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

Boulanza
Niveau 7
Niveau 7
Messages : 444
Enregistré le : mer. 31 juil. 2013 14:49
Status : Hors ligne

Re: [..] Localiser la ligne qui porte le nom du pays recherché pour extraire une donnée

#20

Message par Boulanza » dim. 19 mai 2019 02:34

Bonjour,
Si dans mon code précédent je donne à $pays la valeur "Morocco" ça marche très bien. Mais j'imagine que vous n'avez même pas pris la peine de faire ce test, qui montre que le problème se situe ailleurs, très probablement dans votre "code 1"
Oui, si dans votre code je donne à $pays la valeur "Morocco" ça marche très bien et sans doute, mais je vous confirme que j'ai testé votre code en remplaçantLocal $OsType = _array(), $ligne = -1, $tel = -1, $pays = $CountryName au lieu de $pays = "Morocco" ça ne marche pas chez moi (je suis sous Windows 10 pro 64 bits)
Ci-joint le fichier .ini.
le Code1 ci-dessous.
Cordialement.
;Code 1
#Include <File.au3>
#Include <Array.au3>
Global $OsType,$CountryName,$word,$pays
Global $dir = @ScriptDir & "\Résultat.ini"

                        Global $txt = FileRead($dir)
                $tilt1 = StringRegExp($txt, '\$CountryName =(\V+)', 3)
                ;If IsArray($tilt1) Then
                        $CountryName = $tilt1[0]
                        ;Msgbox(0,"Name", $CountryName)
Fichiers joints
Résultat.ini
(202 Octets) Téléchargé 33 fois
Résultat.ini
(202 Octets) Téléchargé 33 fois
Modifié en dernier par Boulanza le lun. 20 mai 2019 23:36, modifié 1 fois.

Répondre