Jump to content

Is there a way to save data on listview to a txt file but the text is still complete? I did but failed


Loc
 Share

Recommended Posts

I hope people are not uncomfortable with me :(
I don't know why when saving and I export and when I add it is no longer a block of each other, it cannot be accumulated or deleted when adding again

 

 

Link to comment
Share on other sites

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$hGUI = GUICreate("Sell", 320, 350, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))
$Input = GUICtrlCreateInput("", 8, 8, 130, 21)
$Input2 = GUICtrlCreateInput("", 8, 55, 130, 21)
$Button_Add = GUICtrlCreateButton("Add", 200, 6, 75, 30)
$Button_Del = GUICtrlCreateButton("Delete", 200, 36, 75, 30)
$Button_Save = GUICtrlCreateButton("Save", 50, 320, 75, 30)
$Button_Load = GUICtrlCreateButton("Load", 200, 320, 75, 30)
$Combo = GUICtrlCreateCombo("", 8, 30, 130, 21, $CBS_DROPDOWNLIST)
For $i = 1 To 10
    GUICtrlSetData($Combo, $i, 1)
Next
$List = GUICtrlCreateListView("Values Added|Amount|Money", 8, 90, 300, 230, _
        BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_AUTOARRANGE, $LVS_NOSORTHEADER, $WS_VSCROLL), _
        BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUISetState(@SW_SHOW)
Global $aValues[1][4]
$aValues[0][0] = 0
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_Add
            Add()
        Case $Button_Del
            ;_GUICtrlListView_DeleteItemsSelected($List)  ; do not use this.
            Local $x
            For $x = $aValues[0][0] To 0 Step -1
                If _GUICtrlListView_GetItemSelected($List, $x) Then
;~                     CW($x & " selected")
                    _ArrayDelete($aValues, $x + 1)
                    $aValues[0][0] = $aValues[0][0] - 1
                    _GUICtrlListView_DeleteItem($List,$x)
                EndIf
            Next
        Case $Button_Save
            Save()
        Case $Button_Load
            Load()
    EndSwitch
WEnd

Func Add()
    Local $vr, $am, $ValueCount
    $value = GUICtrlRead($Input)
    $value2 = GUICtrlRead($Input2)
    $am = GUICtrlRead($Combo)
    $vr = _ArraySearch($aValues, $value, 1)                    ;This adds the name to $aValues[$vr][0]
    If StringStripWS($value, 8) <> "" Then
        If $vr = -1 Then
            $ValueCount = $aValues[0][0] + 1
            _ArrayAdd($aValues, $value)
            $aValues[$ValueCount][3] = GUICtrlCreateListViewItem($value & "|" & $am & "|" & $value2, $List)      ; Save this for later.
            $aValues[$ValueCount][1] = $am
            $aValues[$ValueCount][2] = $value2
            $aValues[0][0] = $ValueCount
        Else
            CW("Value " & $value & " already exists! :adding " & $am & " to " & $aValues[$vr][1])
            $aValues[$vr][1] = $aValues[$vr][1] + $am
            $aValues[$vr][2] = $aValues[$vr][2] + $value2
            _GUICtrlListView_BeginUpdate($List)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][1], 1)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][2], 2)
            _GUICtrlListView_EndUpdate($List)
        EndIf
    EndIf
EndFunc   ;==>Add

Func Save()
FileDelete(@ScriptDir&'\item.txt')
    $list_count = _GUICtrlListView_GetItemCount ($List)
    For $i=0 To $list_count-1
        _GUICtrlListView_SetItemSelected($List,$i)
        $Read = _GUICtrlListView_GetItemTextArray($List)
        FileWriteLine(@ScriptDir&'\item.txt',$Read[1]&'|'&$Read[2]&'|'&$Read[3])
    Next
EndFunc

Func Load()
    $file_read = FileReadToArray(@ScriptDir&'\item.txt')
    $Read_line = UBound($file_read)
    For $i=0 To $Read_line-1
        GUICtrlCreateListViewItem($file_read[$i],$List)
    Next
EndFunc


Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = 1 Then Add()
    Return "GUI_RUNDEFMSG"
EndFunc   ;==>WM_COMMAND
Func CW($txt)
    ConsoleWrite($txt & @CRLF)
EndFunc   ;==>CW

Edited by Loc
Link to comment
Share on other sites

When I add it to the listview at the beginning I can add or delete data that I add, it can be added up when duplicated. but when i save to txt file. and load the data again but it fails

Link to comment
Share on other sites

2 hours ago, Surya said:

Please include the full script,Most of the functions are missing when trying to execute it

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$hGUI = GUICreate("Sell", 320, 350, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))
$Input = GUICtrlCreateInput("", 8, 8, 130, 21)
$Input2 = GUICtrlCreateInput("", 8, 55, 130, 21)
$Button_Add = GUICtrlCreateButton("Add", 200, 6, 75, 30)
$Button_Del = GUICtrlCreateButton("Delete", 200, 36, 75, 30)
$Button_Save = GUICtrlCreateButton("Save", 50, 320, 75, 30)
$Button_Load = GUICtrlCreateButton("Load", 200, 320, 75, 30)
$Combo = GUICtrlCreateCombo("", 8, 30, 130, 21, $CBS_DROPDOWNLIST)
For $i = 1 To 10
    GUICtrlSetData($Combo, $i, 1)
Next
$List = GUICtrlCreateListView("Values Added|Amount|Money", 8, 90, 300, 230, _
        BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_AUTOARRANGE, $LVS_NOSORTHEADER, $WS_VSCROLL), _
        BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUISetState(@SW_SHOW)
Global $aValues[1][4]
$aValues[0][0] = 0
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_Add
            Add()
        Case $Button_Del
            ;_GUICtrlListView_DeleteItemsSelected($List)  ; do not use this.
            Local $x
            For $x = $aValues[0][0] To 0 Step -1
                If _GUICtrlListView_GetItemSelected($List, $x) Then
;~                     CW($x & " selected")
                    _ArrayDelete($aValues, $x + 1)
                    $aValues[0][0] = $aValues[0][0] - 1
                    _GUICtrlListView_DeleteItem($List,$x)
                EndIf
            Next
        Case $Button_Save
            Save()
        Case $Button_Load
            Load()
    EndSwitch
WEnd

Func Add()
    Local $vr, $am, $ValueCount
    $value = GUICtrlRead($Input)
    $value2 = GUICtrlRead($Input2)
    $am = GUICtrlRead($Combo)
    $vr = _ArraySearch($aValues, $value, 1)                    ;This adds the name to $aValues[$vr][0]
    If StringStripWS($value, 😎 <> "" Then
        If $vr = -1 Then
            $ValueCount = $aValues[0][0] + 1
            _ArrayAdd($aValues, $value)
            $aValues[$ValueCount][3] = GUICtrlCreateListViewItem($value & "|" & $am & "|" & $value2, $List)      ; Save this for later.
            $aValues[$ValueCount][1] = $am
            $aValues[$ValueCount][2] = $value2
            $aValues[0][0] = $ValueCount
        Else
            CW("Value " & $value & " already exists! :adding " & $am & " to " & $aValues[$vr][1])
            $aValues[$vr][1] = $aValues[$vr][1] + $am
            $aValues[$vr][2] = $aValues[$vr][2] + $value2
            _GUICtrlListView_BeginUpdate($List)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][1], 1)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][2], 2)
            _GUICtrlListView_EndUpdate($List)
        EndIf
    EndIf
EndFunc   ;==>Add

Func Save()
FileDelete(@ScriptDir&'\item.txt')
    $list_count = _GUICtrlListView_GetItemCount ($List)
    For $i=0 To $list_count-1
        _GUICtrlListView_SetItemSelected($List,$i)
        $Read = _GUICtrlListView_GetItemTextArray($List)
        FileWriteLine(@ScriptDir&'\item.txt',$Read[1]&'|'&$Read[2]&'|'&$Read[3])
    Next
EndFunc

Func Load()
    $file_read = FileReadToArray(@ScriptDir&'\item.txt')
    $Read_line = UBound($file_read)
    For $i=0 To $Read_line-1
        GUICtrlCreateListViewItem($file_read[$i],$List)
    Next
EndFunc


Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = 1 Then Add()
    Return "GUI_RUNDEFMSG"
EndFunc   ;==>WM_COMMAND
Func CW($txt)
    ConsoleWrite($txt & @CRLF)
EndFunc

 

Edited by Melba23
Added code tags
Link to comment
Share on other sites

Loc, please place your scripts into Code boxes, just click on <> and paste the code there.

If you do not do it, your script is getting smilies all around. 

 


I already have placed the calculations into an array.  So all you need to do, is to save and load from/to it.

 

Here is the working script 

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$hGUI = GUICreate("Sell", 320, 350, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))
$Input = GUICtrlCreateInput("", 8, 8, 130, 21)
$Input2 = GUICtrlCreateInput("", 8, 55, 130, 21)
$Button_Add = GUICtrlCreateButton("Add", 200, 6, 75, 30)
$Button_Del = GUICtrlCreateButton("Delete", 200, 36, 75, 30)
$Button_Save = GUICtrlCreateButton("Save", 50, 320, 75, 30)
$Button_Load = GUICtrlCreateButton("Load", 200, 320, 75, 30)
$Combo = GUICtrlCreateCombo("", 8, 30, 130, 21, $CBS_DROPDOWNLIST)
For $i = 1 To 10
    GUICtrlSetData($Combo, $i, 1)
Next
$List = GUICtrlCreateListView("Values Added|Amount|Money", 8, 90, 300, 230, _
        BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_AUTOARRANGE, $LVS_NOSORTHEADER, $WS_VSCROLL), _
        BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUISetState(@SW_SHOW)
Global $aValues[1][4]
$aValues[0][0] = 0
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_Add
            Add()
        Case $Button_Del
            ;_GUICtrlListView_DeleteItemsSelected($List)  ; do not use this.
            Local $x
            For $x = $aValues[0][0] To 0 Step -1
                If _GUICtrlListView_GetItemSelected($List, $x) Then
;~                     CW($x & " selected")
                    _ArrayDelete($aValues, $x + 1)
                    $aValues[0][0] = $aValues[0][0] - 1
                    _GUICtrlListView_DeleteItem($List, $x)
                EndIf
            Next
        Case $Button_Save
            Save()
        Case $Button_Load
            Load()
    EndSwitch
WEnd

Func Add()
    Local $vr, $am, $ValueCount
    $value = GUICtrlRead($Input)
    $value2 = GUICtrlRead($Input2)
    $am = GUICtrlRead($Combo)
    $vr = _ArraySearch($aValues, $value, 1)                    ;This adds the name to $aValues[$vr][0]
    If StringStripWS($value, 8) <> "" Then
        If $vr = -1 Then
            $ValueCount = $aValues[0][0] + 1
            _ArrayAdd($aValues, $value)
            $aValues[$ValueCount][3] = GUICtrlCreateListViewItem($value & "|" & $am & "|" & $value2, $List)      ; Save this for later.
            $aValues[$ValueCount][1] = $am
            $aValues[$ValueCount][2] = $value2
            $aValues[0][0] = $ValueCount
        Else
            CW("Value " & $value & " already exists! :adding " & $am & " to " & $aValues[$vr][1])
            $aValues[$vr][1] = $aValues[$vr][1] + $am
            $aValues[$vr][2] = $aValues[$vr][2] + $value2
            _GUICtrlListView_BeginUpdate($List)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][1], 1)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][2], 2)
            _GUICtrlListView_EndUpdate($List)
        EndIf
    EndIf
EndFunc   ;==>Add

Func Save()
    Local $filename = @ScriptDir & '\item.txt'
    Local $hF = FileOpen($filename, 2)
    For $i = 1 To $aValues[0][0]
        FileWriteLine($hF, $aValues[$i][0] & '|' & $aValues[$i][1] & '|' & $aValues[$i][2])
    Next
    FileClose($hF)
EndFunc   ;==>Save

Func Load()
    Local $sp = 0
    _GUICtrlListView_DeleteAllItems($List)
    $aValues = ""
    Global $aValues[1][4]
    $aValues[0][0]=0
    $file_read = FileReadToArray(@ScriptDir & '\item.txt')
    $Read_line = UBound($file_read)
    For $i = 0 To $Read_line - 1
        $sp = StringSplit($file_read[$i], "|")
        If IsArray($sp) and UBound($sp)=4 Then
            _ArrayAdd($aValues, $sp[1])
            $aValues[0][0] = $aValues[0][0] + 1
            $aValues[$i+1][1] = $sp[2]
            $aValues[$i+1][2] = $sp[3]
            $aValues[$i+1][3] = GUICtrlCreateListViewItem($file_read[$i], $List)
        EndIf
    Next
EndFunc   ;==>Load


Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = 1 Then Add()
    Return "GUI_RUNDEFMSG"
EndFunc   ;==>WM_COMMAND
Func CW($txt)
    ConsoleWrite($txt & @CRLF)
EndFunc   ;==>CW

 

Edited by Dan_555
deleted the attached picture

Some of my script sourcecode

Link to comment
Share on other sites

@Dan_555 My benefactors :( It is possible to spend some time watching for me. When I added the item to the listview and saved and loaded it was great but the saved item was deleted and added again it could not be deleted :( . I'm not good at handling arrays :(

Link to comment
Share on other sites

Hmm, i'm not sure if i can follow what you said.

Earlier today, i pasted a script, then i have noticed that there is an error, deleted the code until i could fix the error, then pasted the corrected script again.

Maybe you have got the bogus version of the script which i have deleted ?

can you check the last script again ? 

 

Edited by Dan_555

Some of my script sourcecode

Link to comment
Share on other sites

My tool is completely repaired from @ Dan_555. I only developed the cash register but didn't know how it exported the data from Listview to the txt file, it was not aligned, I tried to fix that by "" but with no success :(

Func billplease()

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$hGUI = GUICreate("Sell", 320, 350, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_TABSTOP))
$Input = GUICtrlCreateCombo("", 8, 5, 130, 21,$CBS_DROPDOWNLIST)
GUICtrlSetData($Input, "Cake|Cooking oil|Street|Salt|Egg", "Cake")
$Input2 = GUICtrlCreateCombo("", 8, 55, 130, 21,$CBS_DROPDOWNLIST)
For $i = 10 To 100 Step 10
    GUICtrlSetData($Input2, $i, "10")
Next
$Button_Add = GUICtrlCreateButton("Add", 200, 6, 75, 30)
$Button_Del = GUICtrlCreateButton("Delete", 200, 36, 75, 30)
$Button_Save = GUICtrlCreateButton("Save", 10, 320, 75, 25)
$Button_Load = GUICtrlCreateButton("Load", 90, 320, 75, 25)
$Button_Bill = GUICtrlCreateButton("Bill please", 200, 320, 75, 25)
$Combo = GUICtrlCreateCombo("", 8, 30, 130, 21, $CBS_DROPDOWNLIST)
For $i = 1 To 30
    GUICtrlSetData($Combo, $i, 1)
Next
$List = GUICtrlCreateListView("Product|Amount|Money", 8, 90, 300, 230, _
        BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_AUTOARRANGE, $LVS_NOSORTHEADER, $WS_VSCROLL), _
        BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUISetState(@SW_SHOW)
Global $aValues[1][4]
$aValues[0][0] = 0
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button_Add
            Add()
        Case $Button_Del
            ;_GUICtrlListView_DeleteItemsSelected($List)  ; do not use this.
            Local $x
            For $x = $aValues[0][0] To 0 Step -1
                If _GUICtrlListView_GetItemSelected($List, $x) Then
;~                     CW($x & " selected")
                    _ArrayDelete($aValues, $x + 1)
                    $aValues[0][0] = $aValues[0][0] - 1
                    _GUICtrlListView_DeleteItem($List, $x)
                EndIf
            Next
        Case $Button_Save
            Save()
        Case $Button_Load
            Load()
        Case $Button_Bill
            _Billplease()
    EndSwitch
WEnd

Func _Billplease()
Local $filename = @ScriptDir & '\Billplease.txt'
Local $hF = FileOpen($filename, 2)
FileWriteLine($hF, @MDAY&"."&@MON&"."&@YEAR )
FileWriteLine($hF, "")
FileWriteLine($hF,"Product    |   Amount  |  Money ")
FileWriteLine($hF, "")
For $i = 1 To $aValues[0][0]
FileWriteLine($hF, $aValues[$i][0] & '   ' & $aValues[$i][1] & '   ' & $aValues[$i][2])
Next
FileWriteLine($hF, "")
FileWriteLine($hF, "see you later!")
EndFunc


Func Add()
    Local $vr, $am, $ValueCount
    $value = GUICtrlRead($Input)
    $value2 = GUICtrlRead($Input2)
    $am = GUICtrlRead($Combo)
    $vr = _ArraySearch($aValues, $value, 1)                    ;This adds the name to $aValues[$vr][0]
    If StringStripWS($value, 8) <> "" Then
        If $vr = -1 Then
            $ValueCount = $aValues[0][0] + 1
            _ArrayAdd($aValues, $value)
            $aValues[$ValueCount][3] = GUICtrlCreateListViewItem($value & "|" & $am & "|" & $value2, $List)      ; Save this for later.
            $aValues[$ValueCount][1] = $am
            $aValues[$ValueCount][2] = $value2
            $aValues[0][0] = $ValueCount
        Else
            $aValues[$vr][1] = $aValues[$vr][1] + $am
            $aValues[$vr][2] = $aValues[$vr][2] + $value2
            _GUICtrlListView_BeginUpdate($List)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][1], 1)
            _GUICtrlListView_SetItemText($List, $vr - 1, $aValues[$vr][2], 2)
            _GUICtrlListView_EndUpdate($List)
        EndIf
    EndIf
EndFunc   ;==>Add

Func Save()
    Local $filename = @ScriptDir & '\item.txt'
    Local $hF = FileOpen($filename, 2)
    For $i = 1 To $aValues[0][0]
        FileWriteLine($hF, $aValues[$i][0] & '|' & $aValues[$i][1] & '|' & $aValues[$i][2])
    Next
    FileClose($hF)
EndFunc   ;==>Save

Func Load()
    Local $sp = 0
    _GUICtrlListView_DeleteAllItems($List)
    $aValues = ""
    Global $aValues[1][4]
    $aValues[0][0]=0
    $file_read = FileReadToArray(@ScriptDir & '\item.txt')
    $Read_line = UBound($file_read)
    For $i = 0 To $Read_line - 1
        $sp = StringSplit($file_read[$i], "|")
        If IsArray($sp) and UBound($sp)=4 Then
            _ArrayAdd($aValues, $sp[1])
            $aValues[0][0] = $aValues[0][0] + 1
            $aValues[$i+1][1] = $sp[2]
            $aValues[$i+1][2] = $sp[3]
            $aValues[$i+1][3] = GUICtrlCreateListViewItem($file_read[$i], $List)
        EndIf
    Next
EndFunc   ;==>Load

 

Link to comment
Share on other sites

Try this :

Local $aValues = [[3,0,0], ["Bread", 2, 3], ["Butter", 2.2, 3.3], ["Pineapple", 2, 3.34]]
_Billplease()

Func _Billplease()
  Local $filename = @ScriptDir & '\Billplease.txt'
  Local $hF = FileOpen($filename, 2)
  FileWriteLine($hF, @MDAY & "." & @MON & "." & @YEAR)
  FileWriteLine($hF, "")
  FileWriteLine($hF, "Product    |   Amount  |  Money ")
  FileWriteLine($hF, "")
  For $i = 1 To $aValues[0][0]
    FileWriteLine($hF, StringFormat ("%-12s %8.2f %9.2f", $aValues[$i][0], $aValues[$i][1], $aValues[$i][2]))
  Next
  FileWriteLine($hF, "")
  FileWriteLine($hF, "see you later!")
  FileClose ($hF)
EndFunc   ;==>_Billplease

 

Edited by Nine
Link to comment
Share on other sites

By the way : Why do you open a new thread instead of continuing the existing onesaving-and-uploading-of-guictrllistview ) ?

You might want to consider the following solutions :

1. from @Melba23 :

https://www.autoitscript.com/forum/topic/182492-guilistviewex-bugfix-version-14-jun-20/ ==> _GUIListViewEx_Save/LoadListView functions

2. from @guinness :

exports-the-details-of-a-listview-to-a-txt-file

Musashi-C64.png

"In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...