Skip to content
Snippets Groups Projects
Commit 3d22258b authored by Jacob Theisen's avatar Jacob Theisen
Browse files

KJØR

parent da8b863f
No related branches found
No related tags found
No related merge requests found
...@@ -7,8 +7,6 @@ with open('./fil.txt') as file: ...@@ -7,8 +7,6 @@ with open('./fil.txt') as file:
def run_comp(): def run_comp():
text = tekst text = tekst
output = '' output = ''
...@@ -17,6 +15,7 @@ def run_comp(): ...@@ -17,6 +15,7 @@ def run_comp():
increment = 6 increment = 6
tmp_index_to_store_counter = 0 tmp_index_to_store_counter = 0
tmp_index_in_input = 0 tmp_index_in_input = 0
extra_bytes_counter = 0
while True: while True:
#finished #finished
if index + increment >= len(text): if index + increment >= len(text):
...@@ -24,8 +23,11 @@ def run_comp(): ...@@ -24,8 +23,11 @@ def run_comp():
diff = increment - diff_inc diff = increment - diff_inc
#add the remaing string #add the remaing string
output += text[-diff:len(text)] output += text[-diff:len(text)]
for j in text[-diff:len(text)]:
if j not in string.printable:
extra_bytes_counter +=1
#add the last counter for uncompresed chars #add the last counter for uncompresed chars
output = output[:tmp_index_to_store_counter] + f'[{(index + increment)-tmp_index_in_input}]' + output[tmp_index_to_store_counter:] output = output[:tmp_index_to_store_counter] + f'[{(index + increment)-tmp_index_in_input+extra_bytes_counter}]' + output[tmp_index_to_store_counter:]
return output return output
#if string is already processed #if string is already processed
if text[index: index + increment] in text[:index]: if text[index: index + increment] in text[:index]:
...@@ -36,7 +38,7 @@ def run_comp(): ...@@ -36,7 +38,7 @@ def run_comp():
increment -=1 increment -=1
break break
#add counter, at the index of tmp_index_to_store_counter for the previus uncompresed chars #add counter, at the index of tmp_index_to_store_counter for the previus uncompresed chars
string_to_insert = f'[{index-tmp_index_in_input}]' string_to_insert = f'[{index-tmp_index_in_input+extra_bytes_counter}]'
output = output[:tmp_index_to_store_counter] + string_to_insert + output[tmp_index_to_store_counter:] output = output[:tmp_index_to_store_counter] + string_to_insert + output[tmp_index_to_store_counter:]
#calculate how many chars ago last occurance of the string #calculate how many chars ago last occurance of the string
last_occurance = -(index - text[:index].rindex(text[index: index + increment])) last_occurance = -(index - text[:index].rindex(text[index: index + increment]))
...@@ -49,12 +51,13 @@ def run_comp(): ...@@ -49,12 +51,13 @@ def run_comp():
tmp_index_in_input = index tmp_index_in_input = index
#reset incremnet #reset incremnet
increment = 6 increment = 6
extra_bytes_counter = 0
else: else:
#if substring not procesed, add letter to output and incremnet index #if substring not procesed, add letter to output and incremnet index
output += text[index] output += text[index]
index +=1 index +=1
if text[index] not in string.printable:
extra_bytes_counter +=1
...@@ -107,7 +110,7 @@ while i < len(a): ...@@ -107,7 +110,7 @@ while i < len(a):
i +=1 i +=1
''' '''
extra_bytes_counter2 = 0
togle_replace = False togle_replace = False
togle_append_clear_text = False togle_append_clear_text = False
while True: while True:
...@@ -123,10 +126,15 @@ while True: ...@@ -123,10 +126,15 @@ while True:
int1 = int(a[i:i+len_of_int]) int1 = int(a[i:i+len_of_int])
file.write(int1.to_bytes(2,'little')) file.write(int1.to_bytes(2,'little'))
with open('./compresed', 'a') as file: with open('./compresed', 'a') as file:
file.write(a[i + len_of_int+1:i + len_of_int+1+int1]) #print(a[i + len_of_int+1:i + len_of_int+1+int1])
i += len_of_int + int1 + 2 for j in a[i + len_of_int+1:i + len_of_int+1+int1]:
if j not in string.printable:
extra_bytes_counter2 += 1
file.write(a[i + len_of_int+1:i + len_of_int+1+int1 - extra_bytes_counter2])
i += len_of_int + int1 + 2 - extra_bytes_counter2
togle_replace = True togle_replace = True
togle_append_clear_text = False togle_append_clear_text = False
extra_bytes_counter2 = 0
elif togle_replace == True: elif togle_replace == True:
len_of_backtrack_int = i len_of_backtrack_int = i
......
No preview for this file type
...@@ -4,6 +4,8 @@ with open('./compresed', 'rb') as file: ...@@ -4,6 +4,8 @@ with open('./compresed', 'rb') as file:
tekst = file.read() tekst = file.read()
def dcomp(): def dcomp():
dcomp_arr = [] dcomp_arr = []
i = 0 i = 0
......
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a. Loåorem ipsum dolor sitø amet, consectetur adipiæscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a.
Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a.
Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;
å
\ No newline at end of file
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a. Loåorem ipsum dolor sitø amet, consectetur adipiæscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a.
Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ligula nulla, pulvinar sit amet commodo vestibulum, sollicitudin nec nibh. Mauris id vulputate orci. Maecenas pulvinar quis nisi eget hendrerit. Nunc laoreet velit lorem, ac posuere urna vehicula eu. Aenean augue nulla, bibendum eget egestas et, tincidunt eu dui. Ut suscipit libero sit amet vulputate porta. Morbi tristique aliquam turpis, nec malesuada dui malesuada at. Ut ac ultricies sem. Nam bibendum elementum justo nec commodo. Fusce viverra eros in orci auctor, at molestie nulla vehicula. Aliquam varius ligula ac odio blandit, non commodo ipsum egestas. Nullam maximus risus id mi commodo tincidunt. Etiam euismod quam ac mattis auctor. Nam vel aliquet sem. Mauris ante nulla, facilisis faucibus enim vitae, blandit interdum urna. Suspendisse placerat lacus enim, et commodo augue tincidunt a.
Sed hendrerit diam eleifend faucibus iaculis. Nam vulputate fringilla vulputate. Morbi vehicula metus in quam mattis finibus. Proin dapibus tellus a porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed nec augue sit amet purus tempus dapibus et at turpis. Morbi vitae turpis vel odio porttitor egestas. Duis id rhoncus ipsum, sed eleifend leo. Donec et tempor lectus. Donec a elementum nulla, placerat pellentesque mauris. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae;
å
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment