Page 1 sur 2

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

Posté : ven. 17 mai 2019 02:30
par Boulanza
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"]
 

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

Posté : ven. 17 mai 2019 13:50
par mdanielm
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
 

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

Posté : ven. 17 mai 2019 13:55
par Boulanza
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

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

Posté : ven. 17 mai 2019 14:08
par Boulanza
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.

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

Posté : ven. 17 mai 2019 14:14
par mdanielm
Exemple d'utilisation:
Global $i =  Search($OsType, "It")
msgbox(0,"",$i<>-1 ? $OsType[$i] : "absent")

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

Posté : ven. 17 mai 2019 14:19
par Boulanza
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

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

Posté : ven. 17 mai 2019 14:32
par mdanielm
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

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

Posté : ven. 17 mai 2019 15:29
par Boulanza
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.

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

Posté : ven. 17 mai 2019 16:40
par mdanielm
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
 

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

Posté : ven. 17 mai 2019 18:02
par Boulanza
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

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

Posté : ven. 17 mai 2019 21:55
par amphase
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)

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

Posté : ven. 17 mai 2019 22:48
par Boulanza
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

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

Posté : sam. 18 mai 2019 10:14
par amphase
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...

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

Posté : sam. 18 mai 2019 10:16
par mikell
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

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

Posté : sam. 18 mai 2019 13:49
par Boulanza
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

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

Posté : sam. 18 mai 2019 15:37
par amphase
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.

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

Posté : sam. 18 mai 2019 17:14
par mikell
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"

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

Posté : sam. 18 mai 2019 17:53
par Boulanza
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.

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

Posté : sam. 18 mai 2019 21:15
par mikell
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

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

Posté : dim. 19 mai 2019 03:34
par Boulanza
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)